<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DigDeeply's Blog</title><link>https://fukun.org/</link><description>Recent content on DigDeeply's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 20 Jun 2020 11:41:00 +0000</lastBuildDate><atom:link href="https://fukun.org/index.xml" rel="self" type="application/rss+xml"/><item><title>记一次k8s云平台边缘节点到容器不通问题排查</title><link>https://fukun.org/post/2020-06-20-k8s_eage_to_pod_troubleshooting.html</link><pubDate>Sat, 20 Jun 2020 11:41:00 +0000</pubDate><guid>https://fukun.org/post/2020-06-20-k8s_eage_to_pod_troubleshooting.html</guid><description>&lt;p&gt;熟悉 k8s 的同学都会知道，Kubernetes 的网络定义了一套容器网络 API 接口 CNI（Container Network Interface），这样我们就可以使用任意的第三方网络插件，给我们提供了多样化的网络解决方案。每个解决方案，都有自己的实现方式，相应的，当出现一些网络问题时，也需要我们有能力去分析定位和解决问题。&lt;/p&gt;
&lt;p&gt;先介绍一下我们大概的业务背景：&lt;br&gt;
我们的服务部署在 360 搜索自建的 k8s 云平台上，有 4 个主力集群，业务对外提供 service 的方式为 基于 iptables 模式的 kube-proxy, 通过 nodePort 的方式，指定多台 external IP (也称为边缘节点)，前边挂载 lvs 的形式。&lt;br&gt;
从网上找了个图，比较类似了，只是把左边的 Worker node 多部署几台，前边通过 lvs 实现负载均衡即可。
&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20200620112217.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;在某次业务问题排查中，定位到通过某个集群的 lvs vip 访问业务时，有一定的几率产生超时，于是就有了此次的踩坑之旅。&lt;br&gt;
先用一个脚本查看访问 vip 的超时情况，发现是链接阶段超时:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;TIME_OUT_FMT=&amp;#39;\ntime_namelookup: %{time_namelookup}s\n time_connect: %{time_connect}s\n time_appconnect: %{time_appconnect}s\n time_pretransfer: %{time_pretransfer}s\n time_redirect: %{time_redirect}s\n time_starttransfer: %{time_starttransfer}s\n&amp;#39;

for n in {1..20} ;
do
 echo $n;
 # 这里 url 用业务的 vip 地址
 curl -w &amp;#34;$TIME_OUT_FMT&amp;#34; -o /dev/null -s &amp;#39;https://fukun.org&amp;#39;
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据之前另外一个集群的经验，怀疑是边缘节点容量不足导致的，但是查看边缘节点的网卡丢包情况，并未出现异常，不过还是先对此集群的边缘节点进行了扩容，但扩容之后并没有好转。&lt;br&gt;
此时由于对业务任然在产生影响，为了止损，所以快速的通过 ingress-nginx 部署了一个直接对外的支持 HTTPS 的服务，切换到 ingress 后，业务检测正常，此时是下午6、7点钟，已经不是流量高峰，当到第二天流量早高峰时，由于 ingress 服务之前主要是内部业务之间调用，并未启用 HTTPS，虽然单机的 QPS 6800+ 相比之前的 6000+ 并没有增加多少，但是 nginx 活跃连接数却从之前的单机 700 飙升到了单机 8000， 此时 ingress 服务虽然还能用，但对延迟已经有影响了，对于内部大部分 100ms 级别的请求来说，超时的影响已经比较严重了。所以此时只好先快速的把流量切到其他机房，避免 ingress 影响扩大。&lt;br&gt;
&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20200620115016.png" alt=""&gt;
&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20200620115731.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>谈一谈 IPv6 和 Happy Eyeballs</title><link>https://fukun.org/post/20190129-ipv6_happy_eyeballs.html</link><pubDate>Tue, 29 Jan 2019 17:41:00 +0000</pubDate><guid>https://fukun.org/post/20190129-ipv6_happy_eyeballs.html</guid><description>&lt;p&gt;先看个图，从 Ipv6 的相关资讯可以看到，各大互联网公司都在推进 Ipv6 的部署和支持，这离不开工信部信通院(信息通信研究院)的大力推进。 &lt;br&gt;
&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20190515145254.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Ipv6 的&amp;quot;好处&amp;quot;就不多说了，如果使用 Ipv6，每个设备都可以分配一个固定的地址，定位起来就方便多了，想想就很美(kong)好(bu)吧。&lt;/p&gt;
&lt;p&gt;网络设施和软件的改进我们暂且不谈，就来谈下如何保障业务访问的连通性。&lt;/p&gt;
&lt;p&gt;一谈到 Ipv6 ，大家印象里访问一个 Ipv6 的网站的过程是这样的： &lt;br&gt;
通过 DNS 的 AAAA 解析获取到了域名对应的 Ipv6 的地址，然后就会通过 Ipv6 的地址访问网站，如果访问不通，业务就会挂掉，导致用户访问失败。&lt;/p&gt;
&lt;p&gt;如果这个网址只支持 Ipv6 ，那就是这种现象，如果网址本身支持双栈，即同时支持 Ipv4 和 Ipv6 ,那么在某些环境下，会启用 &lt;a href="https://en.wikipedia.org/wiki/Happy_Eyeballs"&gt;Happy Eyeballs&lt;/a&gt; 算法，进行快速回退，使用 Ipv4 进行访问。&lt;br&gt;
这个算法的提出是在2011年，最初推广 Ipv6 的时候，为了避免让大家担心使用 Ipv6 后如果网络不通，用户会流失。&lt;/p&gt;</description></item><item><title>在Docker内启用perf</title><link>https://fukun.org/post/20181226-linux_perf_in_docker.html</link><pubDate>Wed, 26 Dec 2018 17:41:00 +0000</pubDate><guid>https://fukun.org/post/20181226-linux_perf_in_docker.html</guid><description>&lt;p&gt;今天在学习 极客时间的系列课程-《 Linux性能优化实战》时，通过Docker运行了一个容器，需要借助perf来分析性能瓶颈，正常启动后，在容器内通过&lt;code&gt;apt-get install -y linux-tools&lt;/code&gt;安装好了perf工具，但是启动时，却提示以下信息:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─Error:───────────────────────────────────────────────────────────┐
│No permission to enable cycles event. │
│ │
│You may not have permission to collect system-wide stats. │
│ │
│Consider tweaking /proc/sys/kernel/perf_event_paranoid, │
│which controls use of the performance events system by │
│unprivileged users (without CAP_SYS_ADMIN). │
│ │
│The current value is 3: │
│ │
│ -1: Allow use of (almost) all events by all users │
│&amp;gt;= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK│
│&amp;gt;= 1: Disallow CPU event access by users without CAP_SYS_ADMIN │
│&amp;gt;= 2: Disallow kernel profiling by users without C │
│ │
│ │
│Press any key... │
└──────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;提示没有权限，需要更改 &lt;code&gt;/proc/sys/kernel/perf_event_paranoid&lt;/code&gt; 文件，然后尝试执行:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo 0 &amp;gt; /proc/sys/kernel/perf_event_paranoid
bash: /proc/sys/kernel/perf_event_paranoid: Read-only file system
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;解决办法：&lt;br&gt;
需要使用 &amp;ndash;privileged 参数，所以必须要重新启动容器，重新安装相关package.&lt;br&gt;
启动容器时：&lt;code&gt;docker run --privileged xxx&lt;/code&gt; 即可.
再次执行&lt;code&gt;perf top -g -p 1385&lt;/code&gt;&lt;br&gt;
查看分析效果
&lt;img src="https://wx3.sinaimg.cn/large/6973add9ly1fykauxybk5j21720u2tgk.jpg" alt=""&gt;&lt;/p&gt;</description></item><item><title>HTTP/2 in GO(五)--大结局</title><link>https://fukun.org/post/20180825-http2_in_go_5.html</link><pubDate>Sat, 25 Aug 2018 15:23:35 +0800</pubDate><guid>https://fukun.org/post/20180825-http2_in_go_5.html</guid><description>&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/large/6973add9ly1fueuoqm7gej20ku07kwgs.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;相关阅读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180811-http2_in_go_1.html"&gt;HTTP/2 in GO（一）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180812-http2_in_go_2.html"&gt;HTTP/2 in GO（二）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180819-http2_in_go_3.html"&gt;HTTP/2 in GO（三）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180820-http2_in_go_4.html"&gt;HTTP/2 in GO（四）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通过前边四章，我们了解了HTTP/2的特性，以及如何在Go中利用HTTP/2的相关特性进行一些开发工作。本章作为一个收尾，我来谈一些自己对HTTP/2的理解，以及HTTP/2的应用前景展望，个人观点，不一定对，欢迎大家留言讨论。&lt;/p&gt;
&lt;p&gt;先回顾下：&lt;/p&gt;
&lt;h2 id="http2新增特性"&gt;HTTP/2新增特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;二进制分帧(HTTP Frames)&lt;/li&gt;
&lt;li&gt;多路复用&lt;/li&gt;
&lt;li&gt;头部压缩&lt;/li&gt;
&lt;li&gt;服务端推送(server push)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HTTP/2通过多种多种技术手段(如：多路复用，头部压缩，优先级等)，极大的优化了HTTP的C/S双端的数据交互体验，解决很多以往HTTP/1.1协议本身不能解决的问题。&lt;/p&gt;
&lt;h2 id="http2的优势"&gt;HTTP/2的优势&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;低延迟的内容传输(多路复用，优化RTT)&lt;/li&gt;
&lt;li&gt;带宽占用减小(头部压缩，编码，HPACK)&lt;/li&gt;
&lt;li&gt;连接数减少(多路复用，二进制分帧)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;先来看下带宽和延迟对页面加载的影响，数据来源:&lt;a href="https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/edit?hl=zh-cn#slide=id.g518e3c87f_2_0"&gt;HTTP/2 is here, let&amp;rsquo;s optimize! - Velocity SC 2015&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/mw690/6973add9ly1fulrp7q4f1j21gg0me0x9.jpg" alt=""&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在5M以下的带宽内，对页面加载速度影响较大，5M以上的带宽，对页面加载速度影响较小。&lt;/li&gt;
&lt;li&gt;延迟的减少对页面加载时间的提升呈线性增长&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>HTTP/2 in GO(四)</title><link>https://fukun.org/post/20180820-http2_in_go_4.html</link><pubDate>Sun, 19 Aug 2018 15:11:35 +0800</pubDate><guid>https://fukun.org/post/20180820-http2_in_go_4.html</guid><description>&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/large/6973add9ly1fueuoqm7gej20ku07kwgs.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;相关阅读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180811-http2_in_go_1.html"&gt;HTTP/2 in GO（一）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180812-http2_in_go_2.html"&gt;HTTP/2 in GO（二）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180819-http2_in_go_3.html"&gt;HTTP/2 in GO（三）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="start"&gt;Start&lt;/h1&gt;
&lt;p&gt;上篇文章我们了解了如何在HTTP/2 server端进行Header信息的发送，同时保持连接不断开。这次我们在这个基础上，实现自动下发&lt;code&gt;PUSH&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;先来实现一个最简单的&lt;code&gt;Server Push&lt;/code&gt;的&lt;a href="https://github.com/DigDeeply/http2-in-go"&gt;例子&lt;/a&gt;, 我们在上次的demo基础上继续改进&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;package&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#34;html/template&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#34;log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#34;net/http&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;func&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HandleFunc&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;/header&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;func&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ResponseWriter&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;r&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Request&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Header&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;Add&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;X-custom-header&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;custom header&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WriteHeader&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StatusNoContent&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;f&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;ok&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Flusher&lt;/span&gt;); &lt;span style="color:#a6e22e"&gt;ok&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			&lt;span style="color:#a6e22e"&gt;f&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Flush&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#66d9ef"&gt;select&lt;/span&gt; {}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#75715e"&gt;// 用于push的 handler&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HandleFunc&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;/crt&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;func&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ResponseWriter&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;r&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Request&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;tpl&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;template&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Must&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;template&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ParseFiles&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;server.crt&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;tpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Execute&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#75715e"&gt;// 请求该Path会触发Push&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HandleFunc&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;/push&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;func&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ResponseWriter&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;r&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Request&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;pusher&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;ok&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Pusher&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; !&lt;span style="color:#a6e22e"&gt;ok&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;not support server push&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		} &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			&lt;span style="color:#a6e22e"&gt;err&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;pusher&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Push&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;/crt&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;err&lt;/span&gt; &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;				&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Printf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Failed for server push: %v&amp;#34;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;err&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WriteHeader&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StatusOK&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;start listen on 8080...&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Fatal&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ListenAndServeTLS&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;:8080&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;server.crt&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;server.key&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上代码添加了两个&lt;code&gt;Hanlder&lt;/code&gt;，一个是 &lt;code&gt;/crt&lt;/code&gt;，返回我们的证书内容，这个是用来给做客户端push的内容。另一个是 &lt;code&gt;/push&lt;/code&gt;，请求该链接时，我们会将 &lt;code&gt;/crt&lt;/code&gt; 的内容主动 &lt;code&gt;push&lt;/code&gt; 到客户端。&lt;/p&gt;
&lt;p&gt;GO服务启动后，我们通过&lt;a href="https://github.com/fstab/h2c"&gt;h2c&lt;/a&gt;来访问下&lt;code&gt;/push&lt;/code&gt; ：
先在一个终端通过 &lt;code&gt;h2c start -d&lt;/code&gt; 启动进行输出显示，然后另外开一个终端窗口发起请求 &lt;code&gt;h2c connect localhost:8080&lt;/code&gt; 和 &lt;code&gt;h2c get /push&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/mw690/6973add9ly1fuew2cnv49j20ha0pl15e.jpg" alt=""&gt;&lt;/p&gt;</description></item><item><title>HTTP/2 in GO(三)</title><link>https://fukun.org/post/20180819-http2_in_go_3.html</link><pubDate>Sun, 19 Aug 2018 00:12:55 +0800</pubDate><guid>https://fukun.org/post/20180819-http2_in_go_3.html</guid><description>&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/large/6973add9ly1fueuoqm7gej20ku07kwgs.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;相关阅读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180811-http2_in_go_1.html"&gt;HTTP/2 in GO（一）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180812-http2_in_go_2.html"&gt;HTTP/2 in GO（二）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="start"&gt;Start&lt;/h1&gt;
&lt;p&gt;前边两章讲了很多HTTP/2概念性的东西，看起来比较无趣，从这次开始，我们从一些实际用途开始讲起。&lt;br&gt;
本次讲一个非常简单的功能，然后把其内部实现串一下。&lt;br&gt;
这次要实现的功能非常简单，就是一个http2的server，对客户端的请求，只返回一个header信息，并且保持连接，以便在后续任何时候进行一些其他的响应操作。目前看起来这个场景可能没有太大作用，其实HTTP/2做为一个超文本传输协议，目前我们能想到的应用场景还都是普通的web业务，但是老外们的思路就比较广，已经把一些HTTP/2的特性在特定的场景发挥出来了，比如 Amazon的Alexa，Apple的APNS 等。这次实现的这个小功能，就是Alexa里用到的一小部分.&lt;br&gt;
Amazon的avs(Alexa Voice Service)通过HTTP/2实现了全双工的传输功能，其下行功能就用到了这块，Alexa跟avs建立链接后，客户端会发起一个&lt;code&gt;GET /v20160207/directives&lt;/code&gt;的请求，服务端接受请求后，返回一个200的头信息，并hold住链接，后续使用该链接通过&lt;code&gt;Server Push&lt;/code&gt;功能给客户端&lt;code&gt;主动&lt;/code&gt;发送指令。&lt;br&gt;
本次开始，我们先不管&lt;code&gt;Server Push&lt;/code&gt;，先从发送&lt;code&gt;Header&lt;/code&gt;这个小功能开始吧。&lt;/p&gt;
&lt;p&gt;HTTP/2在GO语言的实现中没有支持h2c，所以我们必须使用带证书的加密方式，那么首先需要有一张证书。&lt;br&gt;
我们可以使用&lt;code&gt;openssl&lt;/code&gt;自己生成一张:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days &lt;span style="color:#ae81ff"&gt;365&lt;/span&gt; -out server.crt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后按提示随便输入一些内容就可以得到两个文件，&lt;code&gt;server.key&lt;/code&gt;和&lt;code&gt;server.crt&lt;/code&gt;，其实就是相当于私钥和公钥。当然这个证书是不能在互联网上正常流通使用的，因为证书是自己签发的，没有人给你做担保，能确认这个证书跟它所标识的内容提供方是匹配的。所以我们在做请求测试的时候，需要客户端忽略证书校验才可以。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/DigDeeply/http2-in-go"&gt;服务端GO示例的代码&lt;/a&gt;如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;package&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#34;log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#e6db74"&gt;&amp;#34;net/http&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;func&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HandleFunc&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;/header&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;func&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ResponseWriter&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;r&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Request&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Header&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;Add&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;X-custom-header&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;custom header&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WriteHeader&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StatusNoContent&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;f&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;ok&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;w&lt;/span&gt;.(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Flusher&lt;/span&gt;); &lt;span style="color:#a6e22e"&gt;ok&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;			&lt;span style="color:#a6e22e"&gt;f&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Flush&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;		&lt;span style="color:#66d9ef"&gt;select&lt;/span&gt; {}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;start listen on 8080...&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Fatal&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ListenAndServeTLS&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;:8080&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;server.crt&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;server.key&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;服务运行起来后我们在一个较新的支持HTTP/2的curl命令下执行:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl &lt;span style="color:#e6db74"&gt;&amp;#34;https://localhost:8080/header&amp;#34;&lt;/span&gt; -k -i --http2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-k&lt;/code&gt; 参数表示忽略证书校验，避免客户端拿到证书后校验不通过而拒绝链接&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-i&lt;/code&gt; 参数表示显示返回的header信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--http2&lt;/code&gt; 表示启用http/2，这个参数也可以不带，因为客户端支持的话，会优先使用http/2去链接，服务端不支持的时候降级到http/1.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/large/6973add9ly1fudzpggjr8j212z09lqfa.jpg" alt="curl with &amp;ndash;http2"&gt;&lt;/p&gt;
&lt;p&gt;这样就实现了只返回了一个header信息，并且链接没有断开。&lt;br&gt;
我们再通过前边介绍过的&lt;a href="https://github.com/fstab/h2c"&gt;h2c&lt;/a&gt;来看下请求的效果：&lt;/p&gt;
&lt;p&gt;&lt;img src="https://wx3.sinaimg.cn/large/6973add9ly1fue0kgfk0cj20lb0r8asf.jpg" alt="这里有图"&gt;&lt;/p&gt;
&lt;p&gt;可以看到返回的只有一个Header信息，并且是没有&lt;code&gt;END_STREAM&lt;/code&gt;标记的。&lt;/p&gt;
&lt;p&gt;本次的实践内容到这里就可以结束了，最终实现的代码很简单，但是为什么这样可以实现呢，在缺少相关资料的情况下，很难知道这样做是可以实现该目的的，那么接下来就从Go语言中对HTTP/2的实现来一探究竟吧：&lt;/p&gt;</description></item><item><title>mismatch types int and time.Duration</title><link>https://fukun.org/2018/08/mismatch-types-int-and-time.duration/</link><pubDate>Thu, 16 Aug 2018 00:00:00 +0000</pubDate><guid>https://fukun.org/2018/08/mismatch-types-int-and-time.duration/</guid><description>&lt;p&gt;在http中设置超时，或在time.Sleep等方法中需要设置一个时间段时，如果使用 &lt;code&gt;整型变量 * time.Second&lt;/code&gt; 之类的，就会报以下错误：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;t&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;t&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;time&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Second&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// mismatched types int and time.Duration&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但是如果使用 &lt;code&gt;整型数字 * time.Second&lt;/code&gt;，就没有问题&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;time&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Second&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ok,没问题。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;那怎么使用变量进行超时设置呢，解决办法就是使用 &lt;code&gt;time.Duration&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;t&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;t&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Duration&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;t&lt;/span&gt;) &lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;time&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Second&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;//ok，没有问题了&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;为什么会这样呢，我们可以看下&lt;code&gt;time.Duration&lt;/code&gt;的定义&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;type Duration int64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其实就是一个int类型&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const (
 Nanosecond Duration = 1
 Microsecond = 1000 * Nanosecond
 Millisecond = 1000 * Microsecond
 Second = 1000 * Millisecond
 Minute = 60 * Second
 Hour = 60 * Minute
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;而 &lt;code&gt;time.Second&lt;/code&gt; 之类的常量也是 &lt;code&gt;Druation&lt;/code&gt; 类型，所以，如果是变量进行相乘的计算时，两个参数必须都是&lt;code&gt;time.Druation&lt;/code&gt;类型的；当是一个数字时，默认是可以转成&lt;code&gt;time.Duration&lt;/code&gt;来进行计算的。&lt;/p&gt;</description></item><item><title>HTTP/2 in GO(二)</title><link>https://fukun.org/post/20180812-http2_in_go_2.html</link><pubDate>Sun, 12 Aug 2018 13:56:00 +0000</pubDate><guid>https://fukun.org/post/20180812-http2_in_go_2.html</guid><description>&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20190515144424.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;相关阅读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fukun.org/post/20180811-http2_in_go_1.html"&gt;HTTP/2 in GO（一）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上一篇文章中介绍了HTTP/2的二进制分帧和多路复用的特性，这次来介绍下头部压缩和服务端推送。&lt;/p&gt;
&lt;h2 id="http2新增特性"&gt;HTTP/2新增特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;二进制分帧(HTTP Frames)&lt;/li&gt;
&lt;li&gt;多路复用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;头部压缩&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务端推送(Server Push)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="头部压缩"&gt;头部压缩&lt;/h3&gt;
&lt;p&gt;在HTTP/1.x中，每次HTTP请求都会携带需要的header信息，这些信息以纯文本形式传递，所以每次的请求和响应，都会浪费一些带宽，如果header信息中包含cookie等之类的信息，那么浪费的带宽就更可观了。为了减少带宽开销和提升性能，HTTP/2 使用 &lt;code&gt;HPACK&lt;/code&gt; 压缩格式压缩请求和响应标头元数据，这种格式采用两种简单但是强大的技术：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这种格式支持通过静态&lt;code&gt;Huffman 编码&lt;/code&gt;对传输的header字段进行编码，从而减小了传输的大小。&lt;/li&gt;
&lt;li&gt;这种格式要求客户端和服务器同时维护和更新一个包含之前见过的header字段的索引列表（换句话说，它可以建立一个共享的压缩上下文），此列表随后会用作参考，对之前传输的值进行有效编码。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;利用 &lt;code&gt;Huffman 编码&lt;/code&gt;，可以在传输时对各个值进行压缩，而利用之前传输值的索引列表，我们可以通过传输索引值的方式对重复值进行编码，索引值可用于有效查询和重构完整的标头键值对。&lt;/p&gt;
&lt;p&gt;客户端和服务端都有一个内置的静态表，部分内容如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;静态表
+-------+-----------------------------+---------------+
| Index | Header Name | Header Value |
+-------+-----------------------------+---------------+
| 1 | :authority | |
| 2 | :method | GET |
| 3 | :method | POST |
| 4 | :path | / |
| 5 | :path | /index.html |
| 6 | :scheme | http |
| 7 | :scheme | https |
| 8 | :status | 200 |
| 9 | :status | 204 |
| 10 | :status | 206 |
| 11 | :status | 304 |
| 12 | :status | 400 |
| 13 | :status | 404 |
| 14 | :status | 500 |
| 15 | accept-charset | |
| 16 | accept-encoding | gzip, deflate |
| 17 | accept-language | |
...
| 58 | user-agent | |
| 59 | vary | |
| 60 | via | |
| 61 | www-authenticate | |
+-------+-----------------------------+---------------+
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;可以看到，部分静态表已经包含了value，比如 &lt;code&gt;Index=2&lt;/code&gt; 的 &lt;code&gt;:method&lt;/code&gt; = &lt;code&gt;GET&lt;/code&gt;，当客户端发起请求时，如果发起的是GET请求，那么只需要在Header信息中携带一个Index=2的索引即可，服务端收到通过静态表即可查出对应的请求头信息。
在静态表中传输的&lt;code&gt;Header Block&lt;/code&gt;是这种格式的：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; 0 1 2 3 4 5 6 7
 +---+---+---+---+---+---+---+---+
 | 1 | Index (7+) |
 +---+---------------------------+
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;从图中可以看到，只需要8-bit即可实现一个method的Header传输:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20190515144652.png" alt="with index"&gt;&lt;/p&gt;
&lt;p&gt;对于静态表中不存在value的值，或者value的值跟想传递的值不一样时，就不能只传递简单的Index了；比如对于&lt;code&gt;:path&lt;/code&gt;的头信息，如果要请求的path不在静态表里，就需要用到 &lt;code&gt;Huffman 编码&lt;/code&gt; 了。&lt;/p&gt;</description></item><item><title>HTTP/2 in GO(一)</title><link>https://fukun.org/post/20180811-http2_in_go_1.html</link><pubDate>Sat, 11 Aug 2018 10:28:35 +0000</pubDate><guid>https://fukun.org/post/20180811-http2_in_go_1.html</guid><description>&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/DigDeeply/imgurl/master/img/20190515144424.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;最近由于做一些相关项目，需要使用到HTTP/2的一些特性，花了两天的时间看了下HTTP/2的&lt;a href="https://httpwg.org/specs/rfc7540.html#top"&gt;RFC-7540&lt;/a&gt;
的文档，又花了一天时间看了下go语言中http server中对&lt;a href="https://golang.org/src/net/http/h2_bundle.go"&gt;HTTP/2&lt;/a&gt;的实现，做一些笔记，记录一些心得。内容比较多，会分多篇写，具体是几篇，看情况定吧。&lt;/p&gt;
&lt;h2 id="http2-rfc7540"&gt;HTTP/2 RFC7540&lt;/h2&gt;
&lt;p&gt;先来看一下什么是&lt;code&gt;HTTP/2&lt;/code&gt;，为什么不是&lt;code&gt;HTTP/1.2&lt;/code&gt;？HTTP/2 没有改动 HTTP 的应用语义。HTTP 方法、状态代码、URI 等概念都跟HTTP/1.1一样，但是HTTP/2在数据传输过程中做了二进制分帧(frame)处理，这点跟之前不一样，通过分帧，HTTP/2对我们的应用隐藏了其复杂性，达到了既能支持一些新特性，又能兼容之前的所有应用。所以，如果我们是跟之前一样，做一些普通的web应用，对HTTP/2的使用跟HTTP/1没有任何区别。但如果我们希望能利用到HTTP/2的一些新特性，就需要对它有一些更深入的了解。&lt;/p&gt;
&lt;h2 id="http2新增特性"&gt;HTTP/2新增特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;二进制分帧(HTTP Frames)&lt;/li&gt;
&lt;li&gt;多路复用&lt;/li&gt;
&lt;li&gt;头部压缩&lt;/li&gt;
&lt;li&gt;服务端推送(server push)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二进制分帧http-frames"&gt;二进制分帧(HTTP Frames)&lt;/h3&gt;
&lt;p&gt;HTTP/2最革命性的原因就在于这个&lt;a href="https://httpwg.org/specs/rfc7540.html#FramingLayer"&gt;二进制分帧&lt;/a&gt;了，要了解二进制分帧在客户端和服务端传输的过程，需要了解三个概念:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frame，帧，HTTP/2协议里通信的最小单位，每个帧有自己的格式，不同类型的帧负责传输不同的消息&lt;/li&gt;
&lt;li&gt;Message, 消息，类似Request/Response消息，每个消息包含一个或多个帧&lt;/li&gt;
&lt;li&gt;Stream，流，建立链接后的一个双向字节流，用来传输消息，每次传输的是一个或多个帧&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP/2里边，这些概念的关系是这样的：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;所有的通信都在一个tcp链接上完成，会建立一个或多个stream来传递数据&lt;/li&gt;
&lt;li&gt;每个stream都有唯一的id标识和一些优先级信息，客户端发起的stream的id为单数，服务端发起的stream id为偶数&lt;/li&gt;
&lt;li&gt;每个message就是一次Request或Response消息，包含一个或多个帧，比如只返回header帧，相当于HTTP里HEAD method请求的返回；或者同时返回header和Data帧，就是正常的Response响应。&lt;/li&gt;
&lt;li&gt;Frame是最小的通信单位，承载着特定类型的数据，例如 Headers， Data, Ping, Setting等等。 来自不同stream的frame可以交错发送，然后再根据每个Frame的header中的数据流标识符重新组装。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://s5.ssl.qhres.com/static/e05d9ce65ca09ff4.svg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;简言之，HTTP/2 将 HTTP 协议通信分解为二进制编码Frame的交换，这些Frame对应着特定Stream中的Message。所有这些都在一个 TCP 连接内复用。这是 HTTP/2 协议所有其他功能和性能优化的基础。&lt;/p&gt;</description></item><item><title>[转载]高并发和高可用的一点思考</title><link>https://fukun.org/post/20171121-hight_performance.html</link><pubDate>Tue, 21 Nov 2017 12:43:00 +0000</pubDate><guid>https://fukun.org/post/20171121-hight_performance.html</guid><description>&lt;p&gt;转载自:&lt;a href="http://kriszhang.com/high_performance/"&gt;Kris&amp;rsquo; Blog&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;本文的架子参考张开套的《亿级流量网站架构核心技术》这本书分为四个部分：指导原则，高可用，高并发，实践案例。这篇文章说一说前三个部分，大部分内容都是我自己的思考，书只作为参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E6%8C%87%E5%AF%BC%E5%8E%9F%E5%88%99"&gt;指导原则&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E9%AB%98%E5%8F%AF%E7%94%A8"&gt;高可用&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E4%BA%8B%E5%89%8D"&gt;事前&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%89%AF%E6%9C%AC%E6%8A%80%E6%9C%AF"&gt;副本技术&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E9%9A%94%E7%A6%BB%E6%8A%80%E6%9C%AF"&gt;隔离技术&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E9%85%8D%E9%A2%9D%E6%8A%80%E6%9C%AF"&gt;配额技术&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%8E%A2%E7%9F%A5%E6%8A%80%E6%9C%AF"&gt;探知技术&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E9%A2%84%E6%A1%88"&gt;预案&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%BA%8B%E5%8F%91"&gt;事发&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%9B%91%E6%8E%A7%E5%92%8C%E6%8A%A5%E8%AD%A6"&gt;监控和报警&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%BA%8B%E4%B8%AD"&gt;事中&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E9%99%8D%E7%BA%A7"&gt;降级&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%9B%9E%E6%BB%9A"&gt;回滚&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#failxxx%E7%B3%BB%E5%88%97"&gt;failXXX系列&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%BA%8B%E5%90%8E"&gt;事后&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E9%AB%98%E5%B9%B6%E5%8F%91"&gt;高并发&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E6%8F%90%E9%AB%98%E5%A4%84%E7%90%86%E9%80%9F%E5%BA%A6"&gt;提高处理速度&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%BC%93%E5%AD%98"&gt;缓存&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%BC%82%E6%AD%A5"&gt;异步&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%A2%9E%E5%8A%A0%E5%A4%84%E7%90%86%E4%BA%BA%E6%89%8B"&gt;增加处理人手&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%A4%9A%E7%BA%BF%E7%A8%8B"&gt;多线程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%89%A9%E5%AE%B9"&gt;扩容&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="指导原则"&gt;指导原则&lt;/h2&gt;
&lt;p&gt;书中所列举的，里有一些可能并不是原则，而是技巧。我理解的原则如下：&lt;/p&gt;
&lt;p&gt;高并发原则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;无状态设计：因为有状态可能涉及锁操作，锁又可能导致并发的串行化。&lt;/li&gt;
&lt;li&gt;保持合理的粒度：无论拆分还是服务化，其实就是服务粒度控制，控制粒度为了分散请求提高并发，或为了从管理等角度提高可操性。&lt;/li&gt;
&lt;li&gt;缓存、队列、并发等技巧在高并发设计上可供参考，但需依场景使用。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;高可用原则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;系统的任何发布必须具有可回滚能力。&lt;/li&gt;
&lt;li&gt;系统任何外部依赖必须准确衡量是否可降级，是否可无损降级，并提供降级开关。&lt;/li&gt;
&lt;li&gt;系统对外暴露的接口必须配置好限流，限流值必须尽量准确可靠。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;业务设计原则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安全性：防抓取，防刷单、防表单重复提交，等等等等。&lt;/li&gt;
&lt;li&gt;at least 消费，应考虑是否采用幂等设计&lt;/li&gt;
&lt;li&gt;业务流程动态化，业务规则动态化&lt;/li&gt;
&lt;li&gt;系统owner负责制、人员备份制、值班制&lt;/li&gt;
&lt;li&gt;系统文档化&lt;/li&gt;
&lt;li&gt;后台操作可追溯&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;以上原则只是大千世界中的一小部分，读者应当在工作学习中点滴积累。&lt;/p&gt;</description></item><item><title>safari 如何 查看源代码 – 进入开发者模式</title><link>https://fukun.org/archives/01052570.html</link><pubDate>Thu, 05 Jan 2017 10:33:17 +0800</pubDate><guid>https://fukun.org/archives/01052570.html</guid><description>&lt;p&gt;入手了MBP16，但是好多东西用的还是不熟练。&lt;/p&gt;
&lt;p&gt;浏览器用chrome一直用的比较多，比较熟。但是Safari自家的跨平台做的还是挺好的。如果快下班了，还有没看完想继续想看的网页，直接点击地址栏位置左边的+号按钮。关机走人。&lt;/p&gt;
&lt;p&gt;在手机上，打开Safari浏览器进入像个眼睛似的的那个to read模式，就可以继续看了，而且手机网速不好也没关系哦，手机在wifi的时候已经下载好了。&lt;/p&gt;
&lt;p&gt;这个用起来真是太方便了。&lt;/p&gt;
&lt;p&gt;开始试着尝试多使用Safari一些，在使用过程中，确不知道怎么查看dom结构，怎么查看源代码，。后来才发现，是没有打开开发者模式的原因，做以下操作：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;打开 Safari偏好设置 &amp;gt; 高级 &amp;gt; 选中 在菜单栏显示‘开发’&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;然后右键，就可以看到 检查元素 啦。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://p.ssl.qhimg.com/t015609eca60ed219a4.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>linux shell下按ctrl+箭头出现5D, 5C</title><link>https://fukun.org/archives/07122560.html</link><pubDate>Tue, 12 Jul 2016 08:14:55 +0800</pubDate><guid>https://fukun.org/archives/07122560.html</guid><description>&lt;p&gt;今天在Linux下使用shell的时候，发现当我想使用Ctrl+箭头进行快速跳跃的时候，并没有出现预期的 光标 移动，而是出现了 5D, 5C 的字样。&lt;/p&gt;
&lt;p&gt;这个很奇怪，查下相关资料，可以这样避免：&lt;/p&gt;
&lt;p&gt;把以下两行添加到 ~/.inputrc文件中:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;\e[1;5C&amp;quot;: forward-word # ctrl + right&amp;lt;br /&amp;gt; &amp;quot;\e[1;5D&amp;quot;: backward-word # ctrl + left&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;退出shell再重新登录，就可以解决了。&lt;/p&gt;</description></item><item><title>一次线上业务跨IDC高延迟问题解决的案例分享</title><link>https://fukun.org/archives/07062555.html</link><pubDate>Wed, 06 Jul 2016 08:15:33 +0800</pubDate><guid>https://fukun.org/archives/07062555.html</guid><description>&lt;p&gt;最近在梳理某项目上各服务接口的性能情况，遇到两个问题。以下是定位和解决问题的一个思路，分享给大家。&lt;/p&gt;
&lt;p&gt;业务之前并没有详细的性能日志记录，仅在电信机房(T机房)进行了性能测试，结果是各接口满足预期，服务上线。&lt;/p&gt;
&lt;p&gt;在进一步对接口进行性能分析时，对各业务接口的关键路径添加了日志统计，通过日志进行分析，将接口的延迟进行统计，接入Grafana，观察数据后，发现两类问题。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;连接MongoDB的服务，网通机房(C机房)延迟比电信机房(T机房)要高。&lt;/li&gt;
&lt;li&gt;连接Mysql的服务，网通机房(C机房)延迟比电信机房(T机房)高。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; **NOTE**: 这些服务接口，都是只读，没有写操作。 

对两类问题分别进行排查:
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="mongodb"&gt;MongoDB&lt;/h3&gt;
&lt;p&gt;简单的排查后发现，MongoDB实例有过一次迁移，并且迁移后只保留了电信机房(T机房)的实例，网通机房(C机房)没有从库，所以网通机房(C机房)延迟比电信机房(T机房)高。对网通机房(C机房)部署了从库实例后，却意外发现电信机房(T机房)的延迟比网通机房(C机房)高了。再次排查后发现，代码中配置的MongoDB的读策略是&lt;a href="https://docs.mongodb.com/manual/reference/read-preference/#secondary"&gt;secondary&lt;/a&gt;（从库优先），所以网通机房(C机房)有从库后，电信机房(T机房)也去网通机房(C机房)读取，导致了电信机房(T机房)的延迟变高。更改读策略为&lt;a href="https://docs.mongodb.com/manual/reference/read-preference/#nearest"&gt;nearest&lt;/a&gt;（就近优先），有所好转，但并没有预想的效果那么好。仔细看下官方文档&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The driver reads from a random member of the set that has a ping time that is less than 15ms slower than the member with the lowest ping time. Reads in the MongoClient::RP_NEAREST mode do not consider the member’s type and may read from both primaries and secondaries.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;就会发现，&lt;strong&gt;nearest是在客户端维护一个到各个实例延迟小于15ms的集合&lt;/strong&gt;，而我们电信机房(T机房)到网通机房(C机房)是光纤直连，延迟在12ms左右，所以，每次客户端可能会连接到电信机房(T机房)，也可能到网通机房(C机房)。&lt;/p&gt;
&lt;p&gt;这点在以后的应用中，大家可以注意下。&lt;/p&gt;
&lt;h3 id="mysql"&gt;Mysql&lt;/h3&gt;
&lt;p&gt;在所有的服务中，只有一个服务接口是读mysql实现的，而这个接口的表现更是奇怪，网通机房(C机房)的延迟比电信机房(T机房)多100 ms+。&lt;/p&gt;
&lt;p&gt;&lt;img src="//fukun.org/wp-content/uploads/2016/07/mysql-describe-high-latency.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;开始时猜测有可能业务内做了某些写主库的操作，比如写mysql，或写redis之类的，跨机房写导致的延迟高。&lt;/p&gt;
&lt;p&gt;实际分析后发现，业务内并没有写操作，多出的时间就是读mysql的时间。&lt;/p&gt;
&lt;p&gt;mysql是有网通机房(C机房)的从库的，为什么读取从库的数据，延迟还会这么高呢。在我们服务端ping 网通机房(C机房)的mysql ip，发现延迟正常，只有零点几毫秒，不存在网络问题。&lt;/p&gt;</description></item><item><title>安装chrome 出现 0x80004002错误的解决办法</title><link>https://fukun.org/archives/05152550.html</link><pubDate>Sun, 15 May 2016 03:02:14 +0800</pubDate><guid>https://fukun.org/archives/05152550.html</guid><description>&lt;p&gt;家里电脑重装了，想安装chrome，网络不好啊，用online的方式安装，代理都不好设置。&lt;/p&gt;
&lt;p&gt;所以最好下载个offline的安装包。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.google.com/chrome/eula.html?system=true&amp;amp;standalone=1"&gt;http://www.google.com/chrome/eula.html?system=true&amp;amp;standalone=1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;然后开始安装。&lt;/p&gt;
&lt;p&gt;安装中遇到了0x80004002的错误提示，使用管理员权限打开又提示 已经有另一个chrome安装中。&lt;/p&gt;
&lt;p&gt;解决办法就是 重启电脑，按F8进入安全模式，进行安装，即可安装成功。&lt;/p&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2016/05/chrome-0x80004002.png" rel="attachment wp-att-2551"&gt;&lt;img src="//fukun.org/wp-content/uploads/2016/05/chrome-0x80004002.png" alt="chrome-0x80004002" width="800" height="600" class="aligncenter size-full wp-image-2551" srcset="//fukun.org/wp-content/uploads/2016/05/chrome-0x80004002.png 800w, //fukun.org/wp-content/uploads/2016/05/chrome-0x80004002-300x225.png 300w, //fukun.org/wp-content/uploads/2016/05/chrome-0x80004002-768x576.png 768w" sizes="(max-width: 800px) 100vw, 800px" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>centos 下安装 perf</title><link>https://fukun.org/archives/03172543.html</link><pubDate>Thu, 17 Mar 2016 04:21:11 +0800</pubDate><guid>https://fukun.org/archives/03172543.html</guid><description>&lt;p&gt;查了一些资料，如果要安装perf的话，都说执行&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;apt-get perf
apt-get linux-tools
yum install google-perftools google-perftools-devel
&lt;/pre&gt;
&lt;p&gt;之类的。&lt;/p&gt;
&lt;p&gt;不过在centos下确实没有这些东西可用。&lt;/p&gt;
&lt;p&gt;yum源找不到，所以还是自己找源装吧。&lt;/p&gt;
&lt;p&gt;在这里找到一个rpm包的库： &lt;a href="https://www.rpmfind.net/linux/rpm2html/search.php?query=perf" target="_blank"&gt;&lt;a href="https://www.rpmfind.net/linux/rpm2html/search.php?query=perf"&gt;https://www.rpmfind.net/linux/rpm2html/search.php?query=perf&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;可以找到perf的rpm包。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://p.ssl.qhimg.com/t01ae947051e0ba591e.png" alt="centos-perf-rpm-install"&gt;&lt;/p&gt;</description></item><item><title>如何在Fiddler script中捕获请求结果并针对返回内容发起一个新请求</title><link>https://fukun.org/archives/02282535.html</link><pubDate>Sun, 28 Feb 2016 07:20:54 +0800</pubDate><guid>https://fukun.org/archives/02282535.html</guid><description>&lt;p&gt;有朋友报名东方时尚，理论课选的网上教学，需要看完所有的视频才能算科目一培训完成，在很早之前就有朋友因为这个找过我。当时东方时尚的授课系统还很简单。。每次看完一个视频都会发起一个固定的请求，表示当前视频看完了。所以之前的做法很简单，把那个url在新标签页打开，每开一个视频，刷一下页面，就算看完一段视频了。。所以不用什么复杂操作，很容易就能完成。&lt;/p&gt;
&lt;p&gt;不过现在，东方时尚的系统明显升级了，已经不是那么简单的逻辑了，每次请求一个新视频，都会有一个/start的请求，把视频id返回，后边每次心跳和看完视频的请求，都是以该id为参数。不能再像以前那么简单的玩耍了。。本来是想写个chrome的扩展来拦截请求做处理的，突然想到Fiddler的script就可以做这些，而且语法是.NET的，会比较熟:)。&lt;/p&gt;
&lt;p&gt;做法也很简单，就是在OnBeforeResponse阶段，获取到body，正则匹配到需要的id，然后再发起一个请求:)，多说无益，直接show code.&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;static function OnBeforeResponse(oSession: Session) {
 
 if (m_Hide304s &amp;&amp; oSession.responseCode == 304) {
 oSession["ui-hide"] = "true";
 }
 oSession.utilDecodeResponse();

 var oBody = oSession.GetResponseBodyAsString (); 
 var regex = /{"data":\{"streamId":(\d+)},"/i ;
 if (oBody.match(regex)) {
 var matches = oBody.match(regex);
 //MessageBox.Show(matches );
 var s = "POST http://api.dfsstv.cn/api/v1/Stream/End?streamId=" + matches[1] + " HTTP/1.1\r\nHost: api.dfsstv.cn\r\nConnection: keep-alive\r\nContent-Length: 0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nDeviceId: 1456634190000\r\nOrigin: http://www.dfsstv.cn\r\nApiKey: 59d71859d3dd491a8ad6accbe7262d94\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\r\nAuthToken: a54a874bddfb449cbbf4ed698b4e0fc4\r\nAccept: */*\r\nReferer: http://www.dfsstv.cn/?u=11107668&amp;p=06260\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: zh-CN,zh;q=0.8\r\n\r\n";
 try{ 
 FiddlerObject.utilIssueRequest(s); 
 } 
 catch(e){ 
 MessageBox.Show("send failed" + e.ToString()); 
 } 
 }
}
&lt;/pre&gt;
&lt;p&gt;regex正则匹配内容。使用 utilIssueRequest 发起请求。&lt;/p&gt;</description></item><item><title>openresty/nginx 中如何替换正文字符串</title><link>https://fukun.org/archives/01292523.html</link><pubDate>Fri, 29 Jan 2016 10:32:24 +0800</pubDate><guid>https://fukun.org/archives/01292523.html</guid><description>&lt;p&gt;最近搞了个海外的阿里云主机后，就把自己的个人站迁移了。然后就想办法做优化，用上了openresty + php7 + http2。&lt;/p&gt;
&lt;p&gt;因为历史原因，自己搞了几个不同的域名，一个是fukun.org，还有一个之前一直用的digdeeply.org，现在想统一起来，可是却发现wordpress里有很多上传附件的时候，链接已经是写死的，使用的当时的域名digdeeply.org，如果去一个一个的把他们替换过来，就不太现实了。&lt;/p&gt;
&lt;p&gt;因为自己用过openresty中的lua，所以首先想到的就是使用一个content_by_lua来实现替换，在这个阶段把内容中字符串替换掉，不过有个细节问题就是这里lua拿到的都是nginx的一个一个的chunk，如果想要替换的字符串正好在两个chunk的分界处，那么这个就会被漏掉而不能替换。&lt;/p&gt;
&lt;p&gt;然后在查一些资料的时候，突然发现，其实，nginx自己就有支持字符串替换的模块的： &lt;a href="http://nginx.org/en/docs/http/ngx_http_sub_module.html" target="_blank"&gt;sub_filter&lt;/a&gt; ， 这样就不用自己在lua写了，会更方便一些，那么先来看看sub_filter怎么用吧。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;location / {
 sub_filter 'https://fukun.org' 'https://fukun.org';
 sub_filter 'https://fukun.org' 'https://fukun.org';
 sub_filter_once off;
}
&lt;/pre&gt;
&lt;p&gt;用法很简单，只要使用 sub_filter ‘search’ ‘replacement’ ，把被替换和替换内容给出来就可以了，可以写多条规则，替换多次。 其它的几个参数稍微看下文档也能明白了：&lt;/p&gt;
&lt;p&gt;语法: sub_filter_once on | off;&lt;/p&gt;
&lt;p&gt;默认值: sub_filter_once on;&lt;/p&gt;
&lt;p&gt;配置段: http, server, location 字符串替换一次还是多次替换，默认替换一次。如果全文中有多个查找到的字符串，希望全部替换的话，就开启这个选项。&lt;/p&gt;
&lt;p&gt;语法: sub_filter_types mime-type …;&lt;/p&gt;
&lt;p&gt;默认值: sub_filter_types text/html;&lt;/p&gt;
&lt;p&gt;配置段: http, server, location 指定需要被替换的MIME类型,默认为“text/html”，如果制定为*，那么所有类型的内容都会被替换，我们其实一般来说，只希望替换text/html中的就可以了，因为如果是图片啥的，你想替换啥呢?&lt;/p&gt;
&lt;h3 id="如何安装sub_filter功能模块http_sub_module"&gt;如何安装sub_filter功能模块http_sub_module&lt;/h3&gt;
&lt;p&gt;以上是sub_filter的用法，但是如果你已经安装好nginx服务了，而且之前没有安装sub_filter模块，那怎么办呢，总不能把nginx全部重新编译重装吧，那样会覆盖之前的nginx配置，还得再来配置一遍。&lt;/p&gt;
&lt;p&gt;可以用另外一种方法来更新nginx，那就是只从新编译，而不安装。&lt;strong&gt;就是只执行 ./configure 和 make 方法，而不执行make install，这样就不会有问题了。然后把make编译好的nginx二进制文件拷贝到已安装的nginx sbin目录下覆盖之前的，覆盖之前请做好备份，并停止当前运行的nginx。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我是用的openresty，所以很多configure的参数不用自己加，第一次我编译的时候，因为需要http2和status模块， 只执行了：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;./configure --prefix=/home/s/apps/openresty-1.9.7.1 --with-http_v2_module --with-http_ssl_module --with-luajit --with-http_stub_status_module
&lt;/pre&gt;
&lt;p&gt;现在需要sub_filter功能，所以只要添加–with-http_sub_module就可以了。那么就是这么编译：&lt;/p&gt;</description></item><item><title>shell/bash if elif then fi 的用法</title><link>https://fukun.org/archives/12182494.html</link><pubDate>Fri, 18 Dec 2015 02:18:48 +0800</pubDate><guid>https://fukun.org/archives/12182494.html</guid><description>&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#!/bin/sh

a=10
b=20

if [ $a == $b ]
then
 echo "a is equal to b"
elif [ $a -gt $b ]
then
 echo "a is greater than b"
elif [ $a -lt $b ]
then
 echo "a is less than b"
else
 echo "None of the condition met"
fi
&lt;/pre&gt;</description></item><item><title>深入理解计算机系统P36练习题2.15</title><link>https://fukun.org/archives/11172490.html</link><pubDate>Tue, 17 Nov 2015 05:25:57 +0800</pubDate><guid>https://fukun.org/archives/11172490.html</guid><description>&lt;p&gt;深入理解计算机系统P36&lt;/p&gt;
&lt;p&gt;练习题2.15&lt;/p&gt;
&lt;p&gt;只使用位级和逻辑运算，编写一个C表达式，他等价于x==y。换句话说，当x和y相等时他将返回1，否则就返回0.&lt;/p&gt;
&lt;p&gt;题目考察的是位级运算符和逻辑运算符的用法，以下是两种实现方式，供参考:&lt;/p&gt;
&lt;pre class="brush: cpp; title: Example; notranslate" title="Example"&gt;#include 

void main(){
int x = 0x1101, y = 0x1100;
printf("%dn", 0x01 ^ x ^ y || 0);
printf("%dn", !(x ^ y));
x = 0x1101;
y = 0x1101;
printf("%dn", 0x01 ^ x ^ y || 0);
printf("%dn", !(x ^ y));
}
&lt;/pre&gt;</description></item><item><title>PHP安装时libiconv错误问题解决</title><link>https://fukun.org/archives/10102487.html</link><pubDate>Sat, 10 Oct 2015 07:58:19 +0800</pubDate><guid>https://fukun.org/archives/10102487.html</guid><description>&lt;p&gt;/var/tools/php-5.6.17/ext/iconv/iconv.c:2512: undefined reference to `libiconv_open’&lt;/p&gt;
&lt;p&gt;ext/xmlrpc/libxmlrpc/encodings.o: In function `convert’:&lt;/p&gt;
&lt;p&gt;/var/tools/php-5.6.17/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open’&lt;/p&gt;
&lt;p&gt;/var/tools/php-5.6.17/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv’&lt;/p&gt;
&lt;p&gt;/var/tools/php-5.6.17/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close’&lt;/p&gt;
&lt;p&gt;collect2: ld returned 1 exit status&lt;/p&gt;
&lt;p&gt;make: *** [sapi/cli/php] Error 1&lt;/p&gt;
&lt;p&gt;在阿里云安装php时，make的时候，发生了libiconv错误，通过安装libiconv,指定with-iconv-dir也没解决。最终是在make时加了一个参数，然后顺利编译通过的。&lt;/p&gt;
&lt;p&gt;&lt;code lang="php"&gt;make ZEND_EXTRA_LIBS=&amp;rsquo;-liconv&amp;rsquo;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>oh-my-zsh自动更改screen标题的问题解决</title><link>https://fukun.org/archives/09062483.html</link><pubDate>Sun, 06 Sep 2015 02:51:06 +0800</pubDate><guid>https://fukun.org/archives/09062483.html</guid><description>&lt;p&gt;使用oh-my-zsh时，同时使用了screen插件，oh-my-zsh对screen有个优化，会自动的变更当前window的title，这个功能虽然看起来很好用，但对我个人来说，很是不习惯，因为我自己有对每个window命名的习惯，每个window干什么自己都记得很清楚，他一来了就给我重命名，搞的我很不习惯，所以，我需要把这个oh-my-zsh自动更改screen的title的情况关闭掉。&lt;/p&gt;
&lt;p&gt;查找了相关资料后，找到了一个方法，其实很简单。在 .zshrc 的配置文件里，添加一行：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;DISABLE_AUTO_TITLE="true"
&lt;/pre&gt;
&lt;p&gt;就可以了。&lt;/p&gt;</description></item><item><title>[Hadoop]The number of tasks for this job 312292 exceeds the configured limit 250000</title><link>https://fukun.org/archives/08172478.html</link><pubDate>Mon, 17 Aug 2015 09:52:42 +0800</pubDate><guid>https://fukun.org/archives/08172478.html</guid><description>&lt;p&gt;hadoop提交任务时提示：The number of tasks for this job 312292 exceeds the configured limit 250000.&lt;/p&gt;
&lt;p&gt;出现这个错误时， 需要修改每个任务的限制的task数。&lt;/p&gt;
&lt;p&gt;在streaming模式下，需要添加一个配置，大于自己所需的任务数(312292)即可：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;-D mapred.jobtracker.maxtasks.per.job=320000
&lt;/pre&gt;</description></item><item><title>iotop错误 No module named iotop.ui</title><link>https://fukun.org/archives/07062475.html</link><pubDate>Mon, 06 Jul 2015 06:26:26 +0800</pubDate><guid>https://fukun.org/archives/07062475.html</guid><description>&lt;p&gt;大家共用的开发机io不正常，磁盘空间总是被莫名其妙的占满，怀疑是某些东西在不断的生成日志，，想看下具体是那些进程在使用IO，需要安装一个iotop， 使用命令sudo yum install iotop，安装成功，但是运行iotop时提示&lt;/p&gt;
&lt;p&gt;No module named iotop.ui&lt;/p&gt;
&lt;p&gt;To run an uninstalled copy of iotop,&lt;/p&gt;
&lt;p&gt;launch iotop.py in the top directory&lt;/p&gt;
&lt;p&gt;开始还以为是没安装好，卸载了重新安装，问题依然存在。&lt;/p&gt;
&lt;p&gt;后来仔细分析了提示信息：No mudule name xxx 应该是python的提示信息，由于服务器上默认的python版本2.4太低，我们自己安装了2.6的版本，并且把/usr/bin/python指向了2.6版本的python，而使用yum安装的库在python2.4的路径下，这就导致直接运行iotop时出现模块不存在的信息，之前yum也有同样的问题。&lt;/p&gt;
&lt;p&gt;解决方法也很简单，只需要把安装的iotop -&amp;gt; /usr/bin/iotop第一行的python运行环境由#!/usr/bin/python改为#!/usr/bin/python2.4即可。&lt;/p&gt;</description></item><item><title>centos下启用snmp</title><link>https://fukun.org/archives/04162471.html</link><pubDate>Thu, 16 Apr 2015 06:48:14 +0800</pubDate><guid>https://fukun.org/archives/04162471.html</guid><description>&lt;h3 id="安装-net-snmp"&gt;安装 Net-SNMP&lt;/h3&gt;
&lt;p&gt;CentOS及其它RedHat系列产品提供了net-snmp的二进制包。我们可以直接从源里安装。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;yum install net-snmp net-snmp-devel net-snmp-utils
&lt;/pre&gt;
&lt;p&gt;说明：net-snmp-devel是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk。&lt;/p&gt;
&lt;h3 id="配置-net-snmp"&gt;配置 Net-SNMP&lt;/h3&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao
&lt;/pre&gt;
&lt;p&gt;以上命令，创建一个snmpv3用户，只读，使用MD5，用户名为jiankongbao，密码为snmp@jiankongbao。&lt;/p&gt;
&lt;p&gt;注意：运行之前请先停用net-snmp服务。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;service snmpd stop
&lt;/pre&gt;
&lt;h3 id="运行-net-snmp"&gt;运行 Net-SNMP&lt;/h3&gt;
&lt;p&gt;运行 Net-SNMP 服务的方法比较简单，不过Net-SNMP服务的名字是snmpd。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;service snmpd start
&lt;/pre&gt;
&lt;p&gt;如果要加入开机自动运行服务列表:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;chkconfig snmpd on
&lt;/pre&gt;
&lt;h3 id="检测-net-snmp"&gt;检测 Net-SNMP&lt;/h3&gt;
&lt;p&gt;我们可以使用 snmpwalk 来检测snmp服务是否正常开启。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr
&lt;/pre&gt;
&lt;p&gt;如果一切正常，就会返回正常结果。 有关snmpwalk的参数说明，请参见其man文档。&lt;/p&gt;</description></item><item><title>Go如何比较时间大小</title><link>https://fukun.org/archives/03212466.html</link><pubDate>Sat, 21 Mar 2015 14:43:45 +0800</pubDate><guid>https://fukun.org/archives/03212466.html</guid><description>&lt;p&gt;Go如何比较时间大小：&lt;/p&gt;
&lt;p&gt;先把当前时间格式化成相同格式的字符串,然后使用time的Before, After, Equal 方法即可.&lt;/p&gt;
&lt;pre class="brush: plain; title: Example; notranslate" title="Example"&gt;time1 := "2015-03-20 08:50:29"
	time2 := "2015-03-21 09:04:25"
	//先把时间字符串格式化成相同的时间类型
	t1, err := time.Parse("2006-01-02 15:04:05", time1)
	t2, err := time.Parse("2006-01-02 15:04:05", time2)
	if err == nil &amp;&amp; t1.Before(t2) {
		//处理逻辑
		fmt.Println("true")
	}
&lt;/pre&gt;
&lt;p&gt;这里有oneline的Demo，可以在线修改，运行。&lt;a href="https://play.golang.org/p/oRJ_1-DE4l" title="go比较时间大小" target="_blank"&gt;&lt;a href="https://play.golang.org/p/oRJ_1-DE4l"&gt;https://play.golang.org/p/oRJ_1-DE4l&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Go如何声明一个多行字符串的变量</title><link>https://fukun.org/archives/03202464.html</link><pubDate>Fri, 20 Mar 2015 09:47:52 +0800</pubDate><guid>https://fukun.org/archives/03202464.html</guid><description>&lt;p&gt;Go如何声明一个多行字符串的变量?使用 ` 来包含即可。&lt;/p&gt;
&lt;pre class="brush: plain; title: Example; notranslate" title="Example"&gt;package main

import (
	"fmt"
)

func main() {
	str := `hello
world
v2.0`
	fmt.Println(str)
}
&lt;/pre&gt;
&lt;p&gt;Demo：&lt;a href="http://play.golang.org/p/BOL8_SwQ0D" title="Go声明一个多行字符串的变量" target="_blank"&gt;&lt;a href="http://play.golang.org/p/BOL8_SwQ0D"&gt;http://play.golang.org/p/BOL8_SwQ0D&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>go xml解析,同时取出attr和value</title><link>https://fukun.org/archives/03192458.html</link><pubDate>Thu, 19 Mar 2015 12:34:19 +0800</pubDate><guid>https://fukun.org/archives/03192458.html</guid><description>&lt;p&gt;想用go做一个统计svn代码提交的工具，类似&lt;a href="http://www.statsvn.org/" title="Statsvn" target="_blank"&gt;statsvn&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;今天进展到了用go解析svn log生成的xml格式的文件，在go doc上找了一个Example，已经包括了一些比较典型的解析案例，但是在照葫芦画瓢的时候还是遇到了问题，有个paths下有多个path，每个path都有自己的属性和值，想同时渠道属性和值，真是费了好大的劲。&lt;/p&gt;
&lt;p&gt;先上个svn xml 格式 log 的demo。&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;log&amp;gt;
&amp;lt;logentry
 revision="43424"&amp;gt;
&amp;lt;author&amp;gt;fukun&amp;lt;/author&amp;gt;
&amp;lt;date&amp;gt;2015-03-13T11:05:17.341130Z&amp;lt;/date&amp;gt;
&amp;lt;paths&amp;gt;
&amp;lt;path
 kind="file"
 action="M"&amp;gt;/BigDataPlatform/trunk/application/controllers/Enterpriseajaxapi.php&amp;lt;/path&amp;gt;
&amp;lt;path
 kind="file"
 action="M"&amp;gt;/BigDataPlatform/trunk/application/models/ChartDataFormater.php&amp;lt;/path&amp;gt;
&amp;lt;path
 kind="file"
 action="M"&amp;gt;/BigDataPlatform/trunk/application/controllers/Mediaajaxapi.php&amp;lt;/path&amp;gt;
&amp;lt;/paths&amp;gt;
&amp;lt;msg&amp;gt;抽象出 格式化折线图的方法&amp;lt;/msg&amp;gt;
&amp;lt;/logentry&amp;gt;
&amp;lt;logentry
 revision="43423"&amp;gt;
&amp;lt;author&amp;gt;zhengjin&amp;lt;/author&amp;gt;
&amp;lt;date&amp;gt;2015-03-13T11:04:50.450051Z&amp;lt;/date&amp;gt;
&amp;lt;paths&amp;gt;
&amp;lt;path
 kind="file"
 action="M"&amp;gt;/BigDataPlatform/trunk/public/static/js/mapChart.js&amp;lt;/path&amp;gt;
&amp;lt;/paths&amp;gt;
&amp;lt;msg&amp;gt;地图事件响应&amp;lt;/msg&amp;gt;
&amp;lt;/logentry&amp;gt;
&amp;lt;/log&amp;gt;
&lt;/pre&gt;
&lt;p&gt;解析其它的都很顺利，但是解析paths这块的时候遇到了点麻烦。如果 … Paths []Path `xml:”paths”` …,&lt;/p&gt;
&lt;pre class="brush: plain; title: Example; notranslate" title="Example"&gt;type Path struct {
	Kind string `xml:"kind,attr"`
	Action string `xml:"action,attr"`
	Path string `xml:"Path"`
} 
&lt;/pre&gt;
&lt;p&gt;这样的话，只能取到一个path的值，但是如果使用 Paths []Path `xml:”paths&amp;gt;path”` ，又只能取到Action和Kind的值，path的value取不到。在stackoverflow上又看了几个例子，发现有个,chardata的用法，才知道原来指定value还可以这样用。将Path的struct Path 的xml定义改为 `xml:”,chardata”`，就可以顺利的取到value了。&lt;/p&gt;
&lt;p&gt;具体的struct就不写了，如果有需要，可以到我正在开发的GoStatsvn去看看。托管在&lt;a href="https://github.com/DigDeeply/GoStatsvn" title="GoStatsvn" target="_blank"&gt;GitHub&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;跟表示XML相关的数据结构&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;①type Name struct {&lt;/p&gt;</description></item><item><title>三次握手的第三个ACK包丢了，TCP的处理方式</title><link>https://fukun.org/archives/03102455.html</link><pubDate>Tue, 10 Mar 2015 10:17:04 +0800</pubDate><guid>https://fukun.org/archives/03102455.html</guid><description>&lt;p&gt;三次握手的第三个ACK包丢了——客户端认为连接建立，写数据时，会触发RST&lt;/p&gt;
&lt;p&gt;当Client端收到Server的SYN+ACK应答后，其状态变为ESTABLISHED，并发送ACK包给Server；&lt;/p&gt;
&lt;p&gt;如果此时ACK在网络中丢失，那么Server端该TCP连接的状态为SYN_RECV，并且依次等待3秒、6秒、12秒后重新发送SYN+ACK包，以便Client重新发送ACK包。&lt;/p&gt;
&lt;p&gt;Server重发SYN+ACK包的次数，可以通过设置/proc/sys/net/ipv4/tcp_synack_retries修改，默认值为5。 如果重发指定次数后，仍然未收到ACK应答，那么一段时间后，Server自动关闭这个连接。&lt;/p&gt;
&lt;p&gt;但是Client认为这个连接已经建立，如果Client端向Server写数据，Server端将以RST包响应，方能感知到Server的错误.&lt;/p&gt;</description></item><item><title>curl使用via的header时，不支持gzip</title><link>https://fukun.org/archives/02282452.html</link><pubDate>Sat, 28 Feb 2015 07:55:15 +0800</pubDate><guid>https://fukun.org/archives/02282452.html</guid><description>&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;curl -s -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-encoding: gzip,deflate' "http://m.news.haosou.com/" -H "Via: curl" | gunzip -
&lt;/pre&gt;
&lt;p&gt;使用这条命令去抓取页面， 不传递Via的header时，是能正常执行的，当带上via时，返回内容不再gzip，直接是正常文本。&lt;/p&gt;
&lt;p&gt;查询了下相关资料，原来via参数在RFC里是有规范的，不是随便指定的。&lt;/p&gt;
&lt;p&gt;见：&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45" title="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45" target="_blank"&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45"&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;`&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;curl -s -H &amp;lsquo;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,&lt;em&gt;/&lt;/em&gt;;q=0.8&amp;rsquo; -H &amp;lsquo;Accept-encoding: gzip,deflate&amp;rsquo; &amp;ldquo;&lt;a href="http://m.news.haosou.com/%22"&gt;http://m.news.haosou.com/&amp;quot;&lt;/a&gt; -H &amp;ldquo;Via: curl&amp;rdquo; | gunzip -
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;使用这条命令去抓取页面， 不传递Via的header时，是能正常执行的，当带上via时，返回内容不再gzip，直接是正常文本。&lt;/p&gt;
&lt;p&gt;查询了下相关资料，原来via参数在RFC里是有规范的，不是随便指定的。&lt;/p&gt;
&lt;p&gt;见：&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45" title="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45" target="_blank"&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45"&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;</description></item><item><title>go lang交叉编译，在linux下编译windows上可用的exe可执行文件</title><link>https://fukun.org/archives/02262448.html</link><pubDate>Thu, 26 Feb 2015 13:50:36 +0800</pubDate><guid>https://fukun.org/archives/02262448.html</guid><description>&lt;p&gt;最近在看golang，看了《GO语言编程》，没看一段都会照葫芦画瓢搞个demo来玩玩。&lt;/p&gt;
&lt;p&gt;在搞交叉编辑的时候，遇到了麻烦，按书上搞的，buildpkg 这个脚本里，需要在$GOROOT/src下执行go tool dist install -v pkg/runtime ，可是src下根本没有这个 pkg/runtime的目录啊，总是报错，怎么也编译不出来。&lt;/p&gt;
&lt;p&gt;自己就不管那个脚本了，自己看错误提示琢磨。&lt;/p&gt;
&lt;p&gt;自己直接 go build exe文件的时候，报错 go build runtime: windows/386 must be bootstrapped using make.bash&lt;/p&gt;
&lt;p&gt;然后估摸着，需要先修改GOOS和GOARCH进行make.bash，试了下，果真可以。&lt;/p&gt;
&lt;p&gt;所以，交叉编译，做一个windows下64位电脑可用的exe文件，这样搞：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;cd $GOROOT/src
GOOS=windows GOARCH=amd64 ./make.bash #如果是32位，就GOARCH=386
cd word #回到自己想输出可执行文件的位置
GOOS=windows GOARCH=amd64 go build -o sorter.exe sorter #go build 依赖 $GOPATH,这个就不多说了。
&lt;/pre&gt;
&lt;p&gt;效果图：&lt;/p&gt;
&lt;div id="attachment_2449" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745.png"&gt;&lt;img class="size-large wp-image-2449" src="//fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745-768x178.png" alt="go-build-for-linux" width="768" height="178" srcset="//fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745-768x178.png 768w, //fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745-300x69.png 300w, //fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745-1024x237.png 1024w, //fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745-1200x277.png 1200w, //fukun.org/wp-content/uploads/2015/02/go-build-for-linux-20150226212745.png 1220w" sizes="(max-width: 768px) 100vw, 768px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 linux下运行效果图
 &lt;/p&gt;
&lt;/div&gt;
&lt;div id="attachment_2450" style="width: 607px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2015/02/go-build-for-windows-20150226212811.png"&gt;&lt;img class="size-full wp-image-2450" src="//fukun.org/wp-content/uploads/2015/02/go-build-for-windows-20150226212811.png" alt="go-build-for-windows" width="597" height="181" srcset="//fukun.org/wp-content/uploads/2015/02/go-build-for-windows-20150226212811.png 597w, //fukun.org/wp-content/uploads/2015/02/go-build-for-windows-20150226212811-300x91.png 300w" sizes="(max-width: 597px) 100vw, 597px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 windows下运行效果图
 &lt;/p&gt;</description></item><item><title>linux下查找包含utf8 BOM头的文件，并删除BOM头信息(FEEF)</title><link>https://fukun.org/archives/02072438.html</link><pubDate>Sat, 07 Feb 2015 15:42:44 +0800</pubDate><guid>https://fukun.org/archives/02072438.html</guid><description>&lt;p&gt;今天收到用户反馈，用户在举报谈谈的谈主时会显示提交失败。&lt;/p&gt;
&lt;p&gt;这个反馈页面入口在反馈平台，调用谈谈项目的后端接口。 这个服务相关的接口都好久没有动了，为什么会失败呢？&lt;/p&gt;
&lt;p&gt;在线上找了一台机器进行debug，发现接口返回内容是“正常”的，一段可读的json字符串。把字符串拷贝下，在js下发现是可以解析的。&lt;/p&gt;
&lt;p&gt;但是该项目下用的json_decode，却怎么都decode不成功。调试了半天都觉得甚是古怪，一直都找不到头绪，怕自己脑子是思维定势了，跑去看了会golang，再回来继续解决。&lt;/p&gt;
&lt;p&gt;再怎么看， 都还是觉得很正常，不应该出问题。&lt;/p&gt;
&lt;p&gt;再一次拷贝接口返回的字符串的时候，发现头部多了个标签。&lt;/p&gt;
&lt;div id="attachment_2440" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2015/02/feff-utf8_bom_remove_linux_vim.jpg"&gt;&lt;img class="size-large wp-image-2440" src="//fukun.org/wp-content/uploads/2015/02/feff-utf8_bom_remove_linux_vim-600x190.jpg" alt="feff-utf8_bom_remove_linux_vim" width="600" height="190" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 feff-utf8_bom_remove_linux_vim
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;查了下，发现这个FEFF就是BOM。 参考：&lt;a href="http://zh.wikipedia.org/wiki/%E4%BD%8D%E5%85%83%E7%B5%84%E9%A0%86%E5%BA%8F%E8%A8%98%E8%99%9F" title="字节顺序标记" target="_blank"&gt;字节顺序标记&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;找到问题所在了，解决问题就好说了。&lt;/p&gt;
&lt;p&gt;windows下有各式各样的编辑器，都可以解决bom头问题，可是linux下该怎么解决呢？&lt;/p&gt;
&lt;p&gt;google了下，问题都解决了。&lt;/p&gt;
&lt;p&gt;1.找到哪些文件包含BOM头。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;grep -rl $'xEFxBBxBF' .
&lt;/pre&gt;
&lt;p&gt;通过hexdump可以看到bom头的存在。&lt;/p&gt;
&lt;div id="attachment_2441" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2015/02/hexdump-BOM-utf8-file.jpg"&gt;&lt;img class="size-large wp-image-2441" src="//fukun.org/wp-content/uploads/2015/02/hexdump-BOM-utf8-file-600x194.jpg" alt="hexdump-BOM-utf8-file" width="600" height="194" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 hexdump-BOM-utf8-file
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2.删除BOM头信息。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sed '1s/^xEFxBBxBF//' filename.php -i
&lt;/pre&gt;
&lt;p&gt;删除后就不会再看到BOM头拉。&lt;/p&gt;
&lt;div id="attachment_2442" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2015/02/hexdump-NO-BOM-utf8-file.jpg"&gt;&lt;img class="size-large wp-image-2442" src="//fukun.org/wp-content/uploads/2015/02/hexdump-NO-BOM-utf8-file-600x193.jpg" alt="hexdump-NO-BOM-utf8-file" width="600" height="193" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 hexdump-NO-BOM-utf8-file
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;可以用一条命令查找并删除文件的BOM头信息：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;find . -type f -exec sed '1s/^xEFxBBxBF//' -i.bak {} ; -exec rm {}.bak ;
&lt;/pre&gt;
&lt;p&gt;总结：&lt;/p&gt;
&lt;p&gt;在多人维护的项目下，很可能会有其他人上传一些不合适的文件或代码，需要对一些常规情况进行监控，及时发现、解决，避免影响线上问题。&lt;/p&gt;</description></item><item><title>jquery ajax get success not called; ajax调用返回200，但是没有调用success的问题</title><link>https://fukun.org/archives/02072436.html</link><pubDate>Sat, 07 Feb 2015 10:43:38 +0800</pubDate><guid>https://fukun.org/archives/02072436.html</guid><description>&lt;p&gt;管理后台不知道为啥出了点小bug，以前管用的一个功能突然不能用了，看了下数据接口是调用成功了，大周末的，又不好麻烦FE，只好自己看看了。&lt;/p&gt;
&lt;p&gt;通过查看源代码发现，使用了jquery里的ajax方法，通过get回来的结果并没有按预期的执行success回调。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;$.ajax({
 url: '/antispammanage/filterSpecial/?kw='+encodeURIComponent(kw),
 type: 'get',
 dataType: 'json',
 success: function(data){
 var d = JSON.parse(data.trim());
 $('.producekw').val(d.kw);
 }
&lt;/pre&gt;
&lt;p&gt;查看网络请求，接口是返回成功的。&lt;/p&gt;
&lt;p&gt;然后对该方法添加了error回调，打印出返回信息，readystate=4,返回头是200，但是为啥就不success呢。&lt;/p&gt;
&lt;p&gt;google了下后发现，原来问题出在返回信息的content-Type上，返回的不是json类型，但是ajax方法里指定了类型为json，所以ajax方法在解析json的时候出错了。解决办法有两个:&lt;/p&gt;
&lt;p&gt;1.接口返回的header里指定content-Type为json，&lt;/p&gt;
&lt;p&gt;2.ajax调用的时候，指定dataType为text，然后自己用JSON.parse进行解析。&lt;/p&gt;</description></item><item><title>怎么修改ulimit，开启php的coredump输出</title><link>https://fukun.org/archives/09132422.html</link><pubDate>Sat, 13 Sep 2014 08:25:51 +0800</pubDate><guid>https://fukun.org/archives/09132422.html</guid><description>&lt;p&gt;大家应该都知道，开启php的coredump输出，修改ulimit -c就可以了，但是很多情况下，会提示权利受限，无法修改&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[fukun@10.16.29.xxx]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30678
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 32768
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

$ ulimit -c unlimited
-bash: ulimit: core file size: cannot modify limit: Operation not permitted
&lt;/pre&gt;
&lt;p&gt;解决方案：&lt;/p&gt;
&lt;p&gt;1.检查配置&lt;/p&gt;
&lt;p&gt;看看shell配置里有没有 ulimit -c 0 这种类似的关闭的操作，例如 $HOME/.bash_profile 或者 $HOME/.bashrc 之类的，如果有，注释掉。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#
# Do not produce core dumps
#
# ulimit -c 0
&lt;/pre&gt;</description></item><item><title>只有ie能上网，其他浏览器和软件都不能</title><link>https://fukun.org/archives/09072417.html</link><pubDate>Sun, 07 Sep 2014 14:53:30 +0800</pubDate><guid>https://fukun.org/archives/09072417.html</guid><description>&lt;p&gt;&lt;span style="font-family: 'microsoft yahei';"&gt;只有ie能上网，其他浏览器和软件都不能的解决方法：&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'microsoft yahei';"&gt;以管理员方式打开cmd.exe，运行如下命令：&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'microsoft yahei';"&gt;netsh winsock reset catalog&lt;br /&gt; netsh int ip reset reset.log hit&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'microsoft yahei';"&gt;让被阻止了的svchost.exe进程恢复正常，以解决Windows 7 通信端口初始化失败的问题  &lt;/span&gt;&lt;/p&gt;
&lt;div id="attachment_2419" style="width: 589px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/09/QQ截图20140907225415.png"&gt;&lt;img class="size-full wp-image-2419" src="//fukun.org/wp-content/uploads/2014/09/QQ截图20140907225415.png" alt="netsh winsock reset catalog" width="579" height="442" srcset="//fukun.org/wp-content/uploads/2014/09/QQ截图20140907225415.png 579w, //fukun.org/wp-content/uploads/2014/09/QQ截图20140907225415-300x229.png 300w" sizes="(max-width: 579px) 100vw, 579px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 netsh winsock reset catalog
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>nginx下载apk文件变为zip的解决办法</title><link>https://fukun.org/archives/09012410.html</link><pubDate>Mon, 01 Sep 2014 11:15:54 +0800</pubDate><guid>https://fukun.org/archives/09012410.html</guid><description>&lt;p&gt;nginx下载apk文件变为zip的解决办法&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;include mime.types;
 types{application/vnd.android.package-archive apk;}
 location ~* .(apk)$ {
 		 add_header Content-Type application/vnd.android.package-archive;
	}
&lt;/pre&gt;</description></item><item><title>nginx referer限制</title><link>https://fukun.org/archives/09012408.html</link><pubDate>Mon, 01 Sep 2014 03:03:24 +0800</pubDate><guid>https://fukun.org/archives/09012408.html</guid><description>&lt;p&gt;语法：valid_referers [none|blocked|server_names]&lt;/p&gt;
&lt;p&gt;使用字段：server, location&lt;/p&gt;
&lt;p&gt;这个指令在referer头的基础上为 $invalid_referer 变量赋值，其值为0或1。&lt;/p&gt;
&lt;p&gt;可以使用这个指令来实现防盗链功能，如果valid_referers列表中没有Referer头的值， $invalid_referer将被设置为1。&lt;/p&gt;
&lt;p&gt;参数可以使如下形式：&lt;/p&gt;
&lt;p&gt;none 意为不存在的Referer头(表示空的，也就是直接访问，比如直接在浏览器打开一个图片)&lt;/p&gt;
&lt;p&gt;blocked 意为根据防火墙伪装Referer头，如：“Referer: XXXXXXX”。&lt;/p&gt;
&lt;p&gt;server_names 为一个或多个服务器的列表，0.5.33版本以后可以在名称中使用“*”通配符。&lt;/p&gt;
&lt;p&gt;举例：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;location /chat/ { 
 valid_referers none blocked so.com *.so.com; 
 if ($invalid_referer) { 
 return 403; 
 } 
} 
&lt;/pre&gt;</description></item><item><title>linux服务器tcp默认分配端口范围设置</title><link>https://fukun.org/archives/08142405.html</link><pubDate>Thu, 14 Aug 2014 06:34:03 +0800</pubDate><guid>https://fukun.org/archives/08142405.html</guid><description>&lt;p&gt;在启动自定义服务的时候，希望使用8370端口，却发现端口已经被nginx或node占用了，无法启动。但是lvs又已经申请了，改端口的话比较麻烦。所以可以修改下 /proc/sys/net/ipv4/ip_local_port_range 参数，使tcp协议分配的端口从一个比较大的范围开始启用，这样，node或nginx就不会占用较小的端口了。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;echo '32768 61000' &amp;gt; /proc/sys/net/ipv4/ip_local_port_range
&lt;/pre&gt;</description></item><item><title>lua技能点：根据特殊字符分割字符串；使用Redis进行hmget</title><link>https://fukun.org/archives/08072399.html</link><pubDate>Thu, 07 Aug 2014 04:32:31 +0800</pubDate><guid>https://fukun.org/archives/08072399.html</guid><description>&lt;p&gt;最近的谈谈项目使用了部分lua，用于一些请求量超高的请求，在nginx层面挡回去，省的调用大量php进程。&lt;/p&gt;
&lt;p&gt;由于以前没用过lua，开发过程中遇到了一些小技能点，记录一下。&lt;/p&gt;
&lt;p&gt;1.lua字符串分割函数&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;--字符串分割函数,按|分割
 function lua_string_split(str, split_char)
 local sub_str_tab = {};
 for mu_id in string.gmatch(str, "(%d+)|*") do
 table.insert(sub_str_tab, mu_id)
 end
 return sub_str_tab;
 end
 --字符串分割函数END
&lt;/pre&gt;
&lt;p&gt;2.使用lua的reids 的 批量获取方法。 比如：hmget&lt;/p&gt;
&lt;p&gt;先将所有的field整合到一个Table， 比如： field_table里。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;redis:hmget(key, unpack(field_table))
&lt;/pre&gt;</description></item><item><title>nginx if判断 and 使用</title><link>https://fukun.org/archives/07082394.html</link><pubDate>Tue, 08 Jul 2014 09:41:30 +0800</pubDate><guid>https://fukun.org/archives/07082394.html</guid><description>&lt;p&gt;360图片搜索遇到这么一个场景，pc端的搜索结果页和频道列表页，在移动端访问时，检测到是移动版的ua，会自动跳转到对应的移动端结果页或频道列表页。&lt;/p&gt;
&lt;p&gt;现在，pc端新上了一个频道，服饰频道，但是移动端还没开发。当在移动端访问pc版的服饰频道页时，会跳转到移动端的频道页，但是没有服饰频道，所以跳转到了默认的美女频道，体验不好。&lt;/p&gt;
&lt;p&gt;所以，就需要做一个处理，当发现是服饰频道时，不跳转，保持pc端的展示。&lt;/p&gt;
&lt;p&gt;之前的nginx配置是判断ua后，就决定是否跳转。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;if ($http_user_agent ~* "^((.*android.*)|(.*Mobile Safari.*)|(.*windows phone os.*)|acer|zte|lenovo|moto|samu|nokia|sony|kindle|240x320|mobile|mmp|ucweb|midp|pocket|psp|symbian|smartphone|treo |up.browser|up.link|vodafone|wap)") {
 rewrite "^/$" http://m.image.so.com/ permanent;
 rewrite "^/([z|i])$" http://m.image.so.com/$1 permanent;
 }
&lt;/pre&gt;
&lt;p&gt;现在需要对频道页判断，而由于频道页是通过参数传入，而不是在path里边，所以使用rewrite规则无法解决。&lt;/p&gt;
&lt;p&gt;其实就可以使用$request_uri判断就可以了。本来是打算在if里通过 and 或者 &amp;amp;&amp;amp; 解决，结果发现不支持。&lt;/p&gt;
&lt;p&gt;查了资料后，发现一个方便实现的方法，通过两次判断，设置变量的形式。&lt;/p&gt;
&lt;p&gt;如下:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;if ($http_user_agent ~* "^((.*android.*)|(.*Mobile Safari.*)|(.*windows phone os.*)|acer|zte|lenovo|moto|samu|nokia|sony|kindle|240x320|mobile|mmp|ucweb|midp|pocket|psp|symbian|smartphone|treo |up.browser|up.link|vodafone|wap)") {
 set $mobile 1;
 }
 if ($request_uri ~* ".*ch=fushi.*"){
 set $mobile 0;
 }
 if ($mobile = 1){
 rewrite "^/$" http://m.image.so.com/ permanent;
 rewrite "^/([z|i])$" http://m.image.so.com/$1 permanent;
 }
&lt;/pre&gt;</description></item><item><title>如何在PHP扩展中引用第三方的C++类库</title><link>https://fukun.org/archives/06032380.html</link><pubDate>Tue, 03 Jun 2014 13:39:10 +0800</pubDate><guid>https://fukun.org/archives/06032380.html</guid><description>&lt;p&gt;还是360指数项目，需要用到Query归一化，但是公司内只有c++版本的，数据分析的同事用的都是那个二进制可执行文件来处理，但是我们前端又不可能跑system()方法吧，太不安全了，所以要来了源代码，打算封装成一个php扩展。&lt;/p&gt;
&lt;p&gt;下边就讲一下我的封装过程。&lt;/p&gt;
&lt;p&gt;首先，要到了Query归一化的C++版本源代码。&lt;/p&gt;
&lt;div id="attachment_2381" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/05/queryWord-20140506.png"&gt;&lt;img class="size-large wp-image-2381" src="//fukun.org/wp-content/uploads/2014/05/queryWord-20140506-600x414.png" alt="query归一化" width="600" height="414" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 query归一化
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;引用第三方的类库有两种方法，一种是静态引用，一种是动态引用，推荐使用静态引用，因为静态引用的情况下，会把类库打包到php的扩展.SO文件中，这样我们不必担心依赖关系，带着类库到处跑了。&lt;/p&gt;</description></item><item><title>shell下输出字符串，用0补齐</title><link>https://fukun.org/archives/05222388.html</link><pubDate>Thu, 22 May 2014 08:48:11 +0800</pubDate><guid>https://fukun.org/archives/05222388.html</guid><description>&lt;p&gt;在shell下想用循环输出数字，然后用0补齐，拼出文件名来。.&lt;/p&gt;
&lt;p&gt;可以使用printf。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;for((i=45; i&amp;lt;=49; i++))
do
printf -v file "%05d" "${i}"
echo $file
done
&lt;/pre&gt;</description></item><item><title>360指数项目概况总结</title><link>https://fukun.org/archives/05062376.html</link><pubDate>Tue, 06 May 2014 12:41:12 +0800</pubDate><guid>https://fukun.org/archives/05062376.html</guid><description>&lt;p&gt;最近在搞360指数项目，挑战还是比较多的，现在项目已经基本ok了，拿出点时间来总结一下。&lt;/p&gt;
&lt;div id="attachment_2377" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/05/index.so_.com-20140506.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2014/05/index.so_.com-20140506-600x292.png" alt="360指数搜索" width="600" height="292" class="size-large wp-image-2377" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 360指数搜索
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;首先说说存储，需求的数据量比较大，又有一些弱关系的查询需求，首先放弃的就是mysql和redis，然后跟DBA沟通了下，使用mongoDB似乎是个不错的选择，在开动了之后才发现，数据量比预估的还要大，DBA的SSD资源不足以支持我们的项目，我们就自己搞了一台有4个2Tsas盘的机器，DBA在上边搞了24个分片，很轻易的，我们就把磁盘IO搞满了，数据写的速度慢的要死，在ssd上有1-2w/s的速度，在sas盘上，就只有几百了，数据量实在太大，需要录入一直到去年年初的指数数据，如果要想在上线前把数据录入完成，这样下去是不可能了。 随后我们又搞了两台给Hadoop集群使用的机器，每台机器有12块SCSI硬盘，看起来些写性能应该能翻个几番，但其实，部署完了之后，才发现，写入速度也才刚能达到1-2k，距离我们的需求还差的很远。&lt;/p&gt;
&lt;p&gt;其实，我们要求的也只是数据的初始化速度要快一些，上线之后，这样的写性能也足以支持我们把增量数据录入，所以，我们还可以通过借一些ssd硬盘来加快写入速度，然后把数据对拷到scsi硬盘，这样，数据初始化的问题就可以解决了。本来已经从其它部门的同事那里借到了25块ssd，不过在跟他们进一步沟通之后，发现公司有可以提供线上服务的Hbase集群，虽然在存储选型初期也想过Hbase，由于当时对Hbase了解较少，也不知道有可以提供线上服务的集群，就这么错过了，与系统部的同事沟通后，我们数据量最大的两块数据，是可以迁移到Hbase使用的，这块数据占到我们总数据的90%，这部分数据通过Hbase解决后，其它数据再使用Mongodb就毫无压力了。最终，我们的最大数据部分的需求，通过合理使用Hbase的column_qualifier和version得以解决。而且单纯存入这批数据的map/reduce时间，仅仅使用了17分钟。&lt;/p&gt;
&lt;p&gt;这里还要感谢一下DBA和系统部的同事，在好几个夜晚帮我们部署环境，解答疑问，使我们的项目得以顺利前进。&lt;/p&gt;
&lt;p&gt;…&lt;/p&gt;
&lt;p&gt;嗯，，，项目中还用到了一个自己封装的php扩展，单独写个文章介绍下吧。&lt;/p&gt;</description></item><item><title>Unknown: Input variables exceeded 1000；nginx在post大量字段时部分字段被丢弃</title><link>https://fukun.org/archives/04022372.html</link><pubDate>Wed, 02 Apr 2014 10:29:35 +0800</pubDate><guid>https://fukun.org/archives/04022372.html</guid><description>&lt;p&gt;今天有运营同事反馈在使用一个内部的运营工具时，有些操作失败，后来抓包发现，post到服务端的数据是正常的，在服务端接受到的数据却并不完整，有缺失。很是奇怪。看了下nginx的error log，发现问题所在了，原来是php有设置最大接受变量个数。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;2014/04/02 18:06:33 [error] 23623#0: *1115 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0" while reading response header from upstream, client: 10.18.120.25,
&lt;/pre&gt;
&lt;p&gt;所以，需要做的就是修改下php.ini中的设置：max_input_vars ，默认没有开启，默认值是1000，修改为自己合适的值，就可以了。&lt;/p&gt;</description></item><item><title>js闭包实现–第一秒输出1，第二秒输出2，第三秒输出3……</title><link>https://fukun.org/archives/04012370.html</link><pubDate>Tue, 01 Apr 2014 09:09:51 +0800</pubDate><guid>https://fukun.org/archives/04012370.html</guid><description>&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;var i =1;
for(i; i&amp;lt;10; i++){
	(function(num){
	 setTimeout(function(){
		 console.log(num);
		 }, num*1000);
	 })(i);
}
&lt;/pre&gt;
&lt;p&gt;重点在闭包的作用域。&lt;/p&gt;</description></item><item><title>undefined symbol: itoa</title><link>https://fukun.org/archives/03182366.html</link><pubDate>Tue, 18 Mar 2014 06:24:39 +0800</pubDate><guid>https://fukun.org/archives/03182366.html</guid><description>&lt;p&gt;itoa不是c的一个标准输入输出，所以可能不在stdlib.h里。&lt;/p&gt;
&lt;p&gt;解决办法很简单，不就是要把整型转为字符串么。sprintf 格式化输出一下就好了。&lt;/p&gt;
&lt;p&gt;举个例子：&lt;/p&gt;
&lt;pre class="brush: cpp; title: Example; notranslate" title="Example"&gt;int val = 177;
char *val_s ;
spprintf(&amp;val_s, 0, "%d", val);
&lt;/pre&gt;</description></item><item><title>libcurl.so.3: cannot open shared object file</title><link>https://fukun.org/archives/03142364.html</link><pubDate>Fri, 14 Mar 2014 08:17:06 +0800</pubDate><guid>https://fukun.org/archives/03142364.html</guid><description>&lt;p&gt;php配置扩展时遇到了个这个问题：PHP Warning: PHP Startup: Unable to load dynamic library ‘/home/s/apps/php-5.2.6/extensions/curl.so’ – libcurl.so.3: cannot open shared object file: No such file or directory in Unknown on line 0&lt;/p&gt;
&lt;p&gt;google了下，都说解决办法是：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;ln -s /usr/lib/libcurl.so.4 /usr/lib/libcurl.so.3
&lt;/pre&gt;
&lt;p&gt;我看了下自己的lib目录，发现也没有 libcurl.so.4，然后又查没有libcurl.so.4怎么样，答案是：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;ln -s /usr/lib/libcurl.so.3 /usr/lib/libcurl.so.4
&lt;/pre&gt;
&lt;p&gt;啊哈哈哈哈哈哈，乐死我了。&lt;/p&gt;
&lt;p&gt;我个人觉得是curl.so不靠谱，从别的地方搞了一个拷贝过来，ok了。&lt;/p&gt;</description></item><item><title>libmemcached – error: sasl/sasl.h: No such file or directory</title><link>https://fukun.org/archives/03142360.html</link><pubDate>Fri, 14 Mar 2014 02:34:37 +0800</pubDate><guid>https://fukun.org/archives/03142360.html</guid><description>&lt;p&gt;尝试用libmemcached的类库链接memcache的时候，报错：sasl/sasl.h: No such file or directory。&lt;/p&gt;
&lt;p&gt;经查发现是没有安装sasl的开发库，所以需要安装下，stackoverflow上说安装一个libsasl2-dev，用yum没找到，然后使用sasl和dev关键字筛选了下，得到了一个libgsasl-devel，然后就装上试了试，就ok了。&lt;/p&gt;
&lt;div id="attachment_2361" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/03/20140314102132-memcache-c-api-client.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2014/03/20140314102132-memcache-c-api-client-600x158.png" alt="sasl/sasl.h: No such file or directory" width="600" height="158" class="size-large wp-image-2361" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 sasl/sasl.h: No such file or directory
 &lt;/p&gt;
&lt;/div&gt;
&lt;div id="attachment_2362" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/03/20140314102459-install-libgsasl-sasl-libmemcached.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2014/03/20140314102459-install-libgsasl-sasl-libmemcached-600x279.png" alt="install libgsasl-devel" width="600" height="279" class="size-large wp-image-2362" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 install libgsasl-devel
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>php代码规范检查 PHP_CodeSniffer</title><link>https://fukun.org/archives/03062354.html</link><pubDate>Thu, 06 Mar 2014 09:06:00 +0800</pubDate><guid>https://fukun.org/archives/03062354.html</guid><description>&lt;p&gt;&lt;a href="http://pear.php.net/package/PHP_CodeSniffer/"&gt;http://pear.php.net/package/PHP_CodeSniffer/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用pear安装，然后使用phpcs命令检查.&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo pear install PHP_CodeSniffer
phpcs application/controllers/Index.php
&lt;/pre&gt;
&lt;p&gt;默认的规则比较严格，doc是必须的，doc的空格个数，格式都有严格要求。。&lt;/p&gt;
&lt;div id="attachment_2355" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/03/20140306170310-php-cod-sniffer-phpcs.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2014/03/20140306170310-php-cod-sniffer-phpcs-600x292.png" alt="Best checked for with a tool: PHP Code Sniffer " width="600" height="292" class="size-large wp-image-2355" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Best checked for with a tool: PHP Code Sniffer
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>如何在不重新make install PHP的情况下编译出PHP扩展.so文件</title><link>https://fukun.org/archives/03052348.html</link><pubDate>Wed, 05 Mar 2014 05:52:59 +0800</pubDate><guid>https://fukun.org/archives/03052348.html</guid><description>&lt;p&gt;生成一个PHP扩展.so文件，一般就是这两种方法，第一种是在php源码内configure –[with|enable]-extension_name，然后make &amp;amp;&amp;amp; make install，新扩展就会生成并保存在PHP的环境中了。&lt;/p&gt;
&lt;p&gt;不过多半会有这种情况，我们跟别人共用一台开发机，开发机已经安装了标准的php开发环境，如果我们在用这种重新编译PHP的情况，如果我们有调试php源码，或者调试扩展，很有可能会损坏原有的标准环境，所以我们就需要另一种方法，只生成一个.so文件，然后把so手动放到标准环境下，就可以不影响大局了。&lt;/p&gt;
&lt;p&gt;这种方式呢，也很简单，跟第一种方法一样，三步搞定。&lt;/p&gt;
&lt;p&gt;一、phpize&lt;/p&gt;
&lt;p&gt;进入你开发php扩展的扩展根目录，比如我想做的扩展是 fkhelloworld，目录在这里 /home/s/www/fukun/clang/php-5.2.6/ext/fkhelloworld.&lt;/p&gt;
&lt;p&gt;在这里执行phpize，如果提示找不到此命令，就找到你php的bin目录，执行全路径的命令，比如我的phpize在这里：/home/s/apps/php-5.2.6/bin/phpize&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you look in the current directory at this point, you’ll notice a lot more files than you had there a moment ago. The phpize program combined the information in your extension’s config.m4 file with data collected from your PHP build and laid out all the pieces necessary to make a compile happen. This means that you don’t have to struggle with makefiles and locating the PHP headers you’ll be compiling against. PHP has already done that job for you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;phpize会结合你的config.m4文件中描述的信息以及你的php构建相关数据，制定合并所需的部分数据，这意味着你不必再在意makefile文件和定位要编译的php文件头，PHP已经把这些都做好了。&lt;/p&gt;</description></item><item><title>PHP扩展：如何在Zend Api中对参数进行获取:zend_parse_parameters()和zend_parse_parameters_ex()</title><link>https://fukun.org/archives/03042339.html</link><pubDate>Tue, 04 Mar 2014 05:32:38 +0800</pubDate><guid>https://fukun.org/archives/03042339.html</guid><description>&lt;p&gt;首先要知道， ZEND_NUM_ARGS()宏定义可以得到参数的个数。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参数解析函数&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;int &lt;strong&gt;zend_parse_parameters&lt;/strong&gt;(int num_args TSRMLS_DC, char *type_spec, …);&lt;/p&gt;
&lt;p&gt;第一个参数num_args表明了我们想要接收的参数个数，一般都使用ZEND_NUM_ARGS() 来表示对传入的参数“有多少要多少”，如果有特殊需求，可以自己直接指定。第二参数应该总是宏 TSRMLS_CC 。第三个参数 type_spec 是一个字符串，用来指定我们所期待接收的各个参数的类型，有点类似于 printf 中指定输出格式的那个格式化字符串。剩下的参数就是我们用来接收PHP参数值的变量的指针。需要说明的一点是：zend_parse_parameters中如果声明了一个字符串类型，那么后面对应的参数将是两个，第一个代表字符串，第二个代表字符串长度。如果声明了一个指定类型的对象实例，那么后面对应的参数也是两个，第一个代表对象，第二个代表对象的类型。&lt;/p&gt;
&lt;p&gt;type_spec 的各类型表示如下：&lt;/p&gt;
&lt;p&gt;• l – 长整数&lt;/p&gt;
&lt;p&gt;• d – 双精度浮点数&lt;/p&gt;
&lt;p&gt;• s – 字符串(也可能是空字节)和其长度&lt;/p&gt;
&lt;p&gt;• b – 布尔值&lt;/p&gt;
&lt;p&gt;• r – 资源, 保存在 zval*&lt;/p&gt;
&lt;p&gt;• a – 数组, 保存在 zval*&lt;/p&gt;
&lt;p&gt;• o – （任何类的）对象, 保存在 zval*&lt;/p&gt;
&lt;p&gt;• O – （由class entry 指定的类的）对象, 保存在 zval*&lt;/p&gt;
&lt;p&gt;• z – 实际的 zval*&lt;/p&gt;
&lt;p&gt;| – 表明剩下的参数都是可选参数。&lt;/p&gt;
&lt;p&gt;/ – 表明参数解析函数将会对剩下的参数以 SEPARATE_ZVAL_IF_NOT_REF()&lt;/p&gt;
&lt;p&gt;的方式来提供这个参数的一份拷贝， 除非这些参数是一个引用。&lt;/p&gt;
&lt;p&gt;! – 表明剩下的参数允许被设定为 NULL（仅用在a、o、O、r和z身上）。&lt;/p&gt;
&lt;p&gt;下边给几个例子，自己体会下：&lt;/p&gt;</description></item><item><title>linux下vim实现php远程调试环境搭建:vim DBGp+xdebug+xdebug helper实现方便的远程开启Debugging, profiling &amp; tracing</title><link>https://fukun.org/archives/02262327.html</link><pubDate>Wed, 26 Feb 2014 06:48:15 +0800</pubDate><guid>https://fukun.org/archives/02262327.html</guid><description>&lt;p&gt;首先是必需组件的安装。&lt;/p&gt;
&lt;p&gt;有三个，vim的DBGp插件，php的xdebug扩展，Chrome浏览器的xdebug helper扩展。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一: vim 安装 dbgp client 插件&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;下载 &lt;a href="http://www.vim.org/scripts/script.php?script_id=1929" target="_blank"&gt;DBGp client&lt;/a&gt;&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;$ cd ~/.vim/
$ wget http://www.vim.org/scripts/download_script.php?src_id=7285 -O debugger.zip
$ unzip debugger.zip
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;二：PHP安装xdebug扩展&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;具体安装方法就不讲了，网上例子很多.&lt;a href="http://xdebug.org/docs/install" target="_blank"&gt;官方安装说明&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;我把我的配置信息贴出来：&lt;/p&gt;
&lt;p&gt;sudo vim /home/s/apps/php-5.2.6/etc/include/xdebug.ini&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[Xdebug]
zend_extension="/home/s/apps/php-5.2.6/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.profiler_enable=0 ;开启profile
xdebug.profiler_enable_trigger=1 ;使用触发器开启profile
xdebug.profiler_output_dir="/home/s/logs/xdebugLog"
xdebug.auto_trace=0 ;开启trace
xdebug.trace_enable_trigger=1 ;使用触发器开启trace
xdebug.trace_output_dir="/home/s/logs/xdebugLog"
xdebug.cli_color=1
xdebug.collect_params=2
xdebug.collect_return=on

;remote debug ;开启远程调试
xdebug.remote_enable=1
xdebug.remote_autostart=Off
xdebug.remote_port=9000	;远程端口，不是你web服务的端口，如果没有冲突，一般不用修改。
&lt;/pre&gt;
&lt;p&gt;其中需要注意的是有注释的地方，不自动开启profile和trace，因为这样每次请求都会保存相应信息，会把磁盘爆掉的。把触发器打开，这样，只有在请求的时候带特定信息的时候，才会记录相应的性能信息。触发器的实现机制是：在请求时，如果GET/POST/COOKIE信息中包含特定的变量，会开启对应的debug,profile或trace，所以我们可以通过在web中访问页面时，添加对应的变量来开启相应的功能。如果每次都自己拼接这个，也挺麻烦，所以会介绍后边的xdebug helper的chrome扩展，想开启任何一个功能的时候，点击一下扩展就可以了。也就是说，这个扩展不是调试必须的，但是会让你感觉用起来很方便。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;三：chrome扩展xdebug helper&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;地址：https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc&lt;/p&gt;
&lt;p&gt;如果在 chrome://apps里搜索xdebug helper搜索不到，记得把你的语言改为 English.&lt;/p&gt;
&lt;div id="attachment_2330" style="width: 477px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2014/02/xdebug-helper-introduction20140226142342.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2014/02/xdebug-helper-introduction20140226142342.png" alt="xdebug-helper-introduction20140226142342" width="467" height="597" class="size-full wp-image-2330" srcset="//fukun.org/wp-content/uploads/2014/02/xdebug-helper-introduction20140226142342.png 467w, //fukun.org/wp-content/uploads/2014/02/xdebug-helper-introduction20140226142342-235x300.png 235w" sizes="(max-width: 467px) 100vw, 467px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 xdebug-helper-introduction20140226142342
 &lt;/p&gt;</description></item><item><title>sudo: unable to execute /bin/rm: Success</title><link>https://fukun.org/archives/02172324.html</link><pubDate>Mon, 17 Feb 2014 05:31:35 +0800</pubDate><guid>https://fukun.org/archives/02172324.html</guid><description>&lt;p&gt;使用 sudo rm -rf *.sst 删除文件时，出现如下提示：&lt;/p&gt;
&lt;p&gt;sudo: unable to execute /bin/rm: Success&lt;/p&gt;
&lt;p&gt;出现这种错误时，是由于*匹配的文件太多导致的。&lt;/p&gt;
&lt;p&gt;所以需要换个方式来删除&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo sh -c 'find -name "*.sst"|xargs rm -rf '
&lt;/pre&gt;
&lt;p&gt;使用sh -c 表示对整条命令使用sudo权限.&lt;/p&gt;</description></item><item><title>nodejs HTTPS发起POST请求</title><link>https://fukun.org/archives/01272319.html</link><pubDate>Mon, 27 Jan 2014 10:06:11 +0800</pubDate><guid>https://fukun.org/archives/01272319.html</guid><description>&lt;p&gt;准备用nodejs搞一个快速注册163邮箱的东西，需要在某一步的时候post数据到https，node的官方文档实在太简陋了，网上找了个差不多的例子，拿来改了改用。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Nodejs HTTPS POST DEMO; notranslate" title="Nodejs HTTPS POST DEMO"&gt;var util = require('util'),
	https = require('https');

var regUrl = "https://ssl.mail.163.com/regall/unireg/call.do;jsessionid=%s?cmd=register.start&amp;adapter=%s&amp;reforward=common/reform&amp;targetCmd=register.ctrlTop";
var cookie = 'a=b;c=d;',
mail = 'regUsername', pass = 'password', vcode='abcde';
var _regUrl = util.format(regUrl, 'id123455', 'param2');
 var post_option = url.parse(_regUrl);
 post_option.method = 'POST';
 post_option.port = 443;
 var post_data = querystring.stringify({
 'name' : mail,
 'uid' : mail+'@163.com',
 'confirmPassword' : pass,
 'password' : pass,
 'vcode' : vcode,
 'flow' : 'main',
 'from' : '163mail_right',
 'mobile' : '',
 });
 post_option.headers = {
 'Content-Type' : 'application/x-www-form-urlencoded',
 'Content-Length' : post_data.length,
 Cookie : cookie };
 var post_req = https.request(post_option, function(res){

 res.on('data', function(buffer){
 console.log(buffer.toString());
 });
 post_req.write(post_data);
 post_req.end();
&lt;/pre&gt;</description></item><item><title>隐式声明与内建函数 ‘calloc’ 不兼容</title><link>https://fukun.org/archives/01072316.html</link><pubDate>Tue, 07 Jan 2014 13:35:20 +0800</pubDate><guid>https://fukun.org/archives/01072316.html</guid><description>&lt;p&gt;自己在尝试写一个简单的hashTable的时候，报错：&lt;/p&gt;
&lt;p&gt;hashTable.h: In function ‘hash_resize’:&lt;/p&gt;
&lt;p&gt;hashTable.h:40: 警告：隐式声明与内建函数 ‘calloc’ 不兼容&lt;/p&gt;
&lt;p&gt;hashTable.h: In function ‘hash_init’:&lt;/p&gt;
&lt;p&gt;hashTable.h:65: 警告：隐式声明与内建函数 ‘calloc’ 不兼容&lt;/p&gt;
&lt;p&gt;解决办法就是需要包含一个头文件：&lt;/p&gt;
&lt;pre class="brush: cpp; title: 包含头文件; notranslate" title="包含头文件"&gt;#include &amp;lt;stdlib.h&amp;gt;
&lt;/pre&gt;</description></item><item><title>结构体struct和联合体union的区别</title><link>https://fukun.org/archives/01062307.html</link><pubDate>Mon, 06 Jan 2014 05:16:56 +0800</pubDate><guid>https://fukun.org/archives/01062307.html</guid><description>&lt;p&gt;&lt;strong&gt;结构体-struct&lt;/strong&gt;是把若干个数据类型组合到一起,相当于形成一个结构类型,这样的结构体变量就拥有结构体所包含的所有的数据类型。&lt;/p&gt;
&lt;p&gt;结构体所占用的内存单元是它里面包含数据类型所占内存单元的总和。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;联合体-union&lt;/strong&gt;是为了节省内存而设置的,若干个不同数据类型共用一组内存单元。&lt;/p&gt;
&lt;p&gt;联合体所占的内存单元是它所包含的数据类型中占用内存单元最大的那个数据类型所占用的内存单元的值。&lt;/p&gt;
&lt;pre class="brush: cpp; title: Example; notranslate" title="Example"&gt;  union   test1
  {   
          long   a;   
          char   b;   
  }   
  sizeof(test1)==sizeof(long)   
    
  struct  test2
  {   
          long   a;   
          char   b;   
  }   
  sizeof(test2)==sizeof(long)+sizeof(char)

&lt;/pre&gt;
&lt;p&gt;struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员, 而struct的所有成员都存在。&lt;/p&gt;
&lt;p&gt;对于union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于struct的不同成员赋值是互不影响的。&lt;/p&gt;</description></item><item><title>proc/sys/net/ipv4/下各项的意义</title><link>https://fukun.org/archives/01042311.html</link><pubDate>Sat, 04 Jan 2014 07:11:18 +0800</pubDate><guid>https://fukun.org/archives/01042311.html</guid><description>&lt;p&gt;/proc/sys/net/ipv4/icmp_timeexceed_rate&lt;/p&gt;
&lt;p&gt;这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/igmp_max_memberships&lt;/p&gt;
&lt;p&gt;主机上最多有多少个igmp (多播)套接字进行监听。&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/inet_peer_gc_maxtime&lt;/p&gt;
&lt;p&gt;求 助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies.&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/inet_peer_gc_mintime&lt;/p&gt;
&lt;p&gt;每一遍碎片收集之间的最小时间间隔。当内存压力比较大的时候，调整这个间隔很有效。以jiffies计。&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/inet_peer_maxttl&lt;/p&gt;
&lt;p&gt;entries的最大生存期。在pool没有内存压力的情况下(比如，pool中entries的数量很少的时候)，未使用的entries经过一段时间就会过期。以jiffies计。&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/inet_peer_minttl&lt;/p&gt;
&lt;p&gt;entries的最小生存期。应该不小于汇聚端分片的生存期。当pool的大小不大于inet_peer_threshold时，这个最小生存期必须予以保证。以jiffies计。&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/inet_peer_threshold&lt;/p&gt;
&lt;p&gt;The approximate size of the INET peer storage. Starting from this threshold entries will be thrown aggressively. This threshold also determines entries’ time-to-live anｄ time intervals between garbage collection passes. More entries, less time-to-live, less GC interval.&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/ip_autoconfig&lt;/p&gt;
&lt;p&gt;这个文件里面写着一个数字，表示主机是否通过RARP、BOOTP、DHCP或者其它机制取得其IP配置。否则就是0。&lt;/p&gt;
&lt;p&gt;/proc/sys/net/ipv4/ip_default_ttl&lt;/p&gt;
&lt;p&gt;数据包的生存期。设置为64是安全的。如果你的网络规模巨大就提高这个值。不要因为好玩而这么做——那样会产生有害的路由环路。实际上，在很多情况下你要考虑能否减小这个值。&lt;/p&gt;</description></item><item><title>Cannot assign requested address 出现原因及解决方案</title><link>https://fukun.org/archives/12312305.html</link><pubDate>Tue, 31 Dec 2013 07:56:28 +0800</pubDate><guid>https://fukun.org/archives/12312305.html</guid><description>&lt;p&gt;今天在压测时，会偶尔遇到错误，错误提示: Cannot assign requested address ,看了下，大致上是由于客户端频繁的连服务器，由于每次连接都在很短的时间内结束，导致很多的TIME_WAIT，以至于用光了可用的端 口号，所以新的连接没办法绑定端口，即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat，的确看到很多TIME_WAIT状态的连接。&lt;/p&gt;
&lt;p&gt;解决办法是需要做一下内核参数优化：（需要root权限）&lt;/p&gt;
&lt;p&gt;sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0，则下面一项设置不起作用&lt;/p&gt;
&lt;p&gt;sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收&lt;/p&gt;
&lt;p&gt;改完还不能解决问题，需要修改tcp_max_tw_buckets&lt;/p&gt;
&lt;p&gt;sudo sh -c “echo ‘5000’&amp;gt; /proc/sys/net/ipv4/tcp_max_tw_buckets”&lt;/p&gt;</description></item><item><title>tar.bz2 解压</title><link>https://fukun.org/archives/12282303.html</link><pubDate>Sat, 28 Dec 2013 09:20:14 +0800</pubDate><guid>https://fukun.org/archives/12282303.html</guid><description>&lt;p&gt;首先：&lt;/p&gt;
&lt;p&gt;bzip2 -d wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2&lt;/p&gt;
&lt;p&gt;会解压成一个tar文件&lt;/p&gt;
&lt;p&gt;wkhtmltopdf-0.11.0_rc1-static-i386.tar&lt;/p&gt;
&lt;p&gt;在打开tar即可。&lt;/p&gt;
&lt;p&gt;tar -xvf wkhtmltopdf-0.11.0_rc1-static-i386.tar&lt;/p&gt;
&lt;p&gt;就会看到包里的内容了。&lt;/p&gt;</description></item><item><title>git fatal: Unable to find remote helper for ‘https’</title><link>https://fukun.org/archives/12162299.html</link><pubDate>Mon, 16 Dec 2013 06:08:52 +0800</pubDate><guid>https://fukun.org/archives/12162299.html</guid><description>&lt;p&gt;当出现此错误时，说明本地git没有安装curl-devel包，可以直接使用yum install git完整安装git来解决。&lt;/p&gt;
&lt;p&gt;不过现在由于我的开发机已经安装了公司的另一个curl包，不能覆盖安装，会发生冲突而中断。&lt;/p&gt;
&lt;p&gt;所以就需要用另一种方式来提交。&lt;/p&gt;
&lt;p&gt;不通过https，而是通过git://github.com ，通过建立ssh信任来直接提交。&lt;/p&gt;
&lt;p&gt;在生成公钥，填写在github.com的账户管理中后。&lt;/p&gt;
&lt;p&gt;本地设置一下远程仓库url&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;git remote set-url --push origin git@github.com:DigDeeply/Qalert.git
&lt;/pre&gt;
&lt;p&gt;再git push。&lt;/p&gt;
&lt;p&gt;就ok啦。。&lt;/p&gt;</description></item><item><title>nginx client intended to send too large body 却没有触发error_page 413</title><link>https://fukun.org/archives/12062295.html</link><pubDate>Fri, 06 Dec 2013 12:42:01 +0800</pubDate><guid>https://fukun.org/archives/12062295.html</guid><description>&lt;p&gt;在做以图搜图时，需要用户上传图片，同时需要对用户上传图片做大小限制。&lt;/p&gt;
&lt;p&gt;如果文件全部上传到服务器了，可以用$_FILES变量来获取文件信息，判断文件大小，来决定是否拒绝用户的请求。&lt;/p&gt;
&lt;p&gt;不过当文件过大时，会直接出发nginx的413 Request Entity Too Large 错误，如何友好的来提示用户呢。&lt;/p&gt;
&lt;p&gt;这里就可以用到nginx的error_page用法了，直接指定413的错误跳转到一个指定页面，在指定页面内友好提示即可。&lt;/p&gt;
&lt;p&gt;`在做以图搜图时，需要用户上传图片，同时需要对用户上传图片做大小限制。&lt;/p&gt;
&lt;p&gt;如果文件全部上传到服务器了，可以用$_FILES变量来获取文件信息，判断文件大小，来决定是否拒绝用户的请求。&lt;/p&gt;
&lt;p&gt;不过当文件过大时，会直接出发nginx的413 Request Entity Too Large 错误，如何友好的来提示用户呢。&lt;/p&gt;
&lt;p&gt;这里就可以用到nginx的error_page用法了，直接指定413的错误跳转到一个指定页面，在指定页面内友好提示即可。&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;这样设置了之后，就可以使用了，当上传的文件过大时，会直接被nginx拦截到413错误，进而重定向到友好的错误提示页。&lt;/p&gt;
&lt;p&gt;不过在一次bug修复之后，发现再提交过大的文件时，没有出现这个提示页面了，而是等了很长时间之后出现了一个500错误，而且500错误也没有被拦截到50x的错误页面，很是奇怪。排查了下nginx日志，出现的错误提示就是 client intended to send too large body: 4224579 bytes.&lt;/p&gt;
&lt;p&gt;排查了一会之后，再测试环境下打开错误输出，发现原来是413重定向后的Action在视图里有php语法错误。修复之后，就又恢复正常啦。&lt;/p&gt;
&lt;div id="attachment_2296" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2013/12/20131206204013-st.so_.com-error-413.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2013/12/20131206204013-st.so_.com-error-413-600x256.png" alt="client intended to send too large body" width="600" height="256" class="size-large wp-image-2296" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 client intended to send too large body
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>php configure 错误:configure: error: xml2-config not found. Please check your libxml2 installation.</title><link>https://fukun.org/archives/12032281.html</link><pubDate>Tue, 03 Dec 2013 07:57:12 +0800</pubDate><guid>https://fukun.org/archives/12032281.html</guid><description>&lt;p&gt;开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;这个很简单，一看就明白了，只要使用 ./buildconf –force 即可通过。&lt;/p&gt;
&lt;p&gt;php configure时错误：``开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;这个很简单，一看就明白了，只要使用 ./buildconf –force 即可通过。&lt;/p&gt;
&lt;p&gt;php configure时错误：``&lt;/p&gt;
&lt;p&gt;这个是由于缺少libxml2包的原因，使用sudo yum install libxml2 执行后，安装了libxml2包，结果还是提示这个错误，执行rpm -qa|grep libxml2，发现是有libxml2的包的，后来发现，其实需要的是libxml2-devel 包，所以，正确的解决办法是，安装libxml2-devel包，执行 ```开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;这个很简单，一看就明白了，只要使用 ./buildconf –force 即可通过。&lt;/p&gt;
&lt;p&gt;php configure时错误：``开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`开发php扩展时，php buildconf 时报错:&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;这个很简单，一看就明白了，只要使用 ./buildconf –force 即可通过。&lt;/p&gt;
&lt;p&gt;php configure时错误：``&lt;/p&gt;
&lt;p&gt;这个是由于缺少libxml2包的原因，使用sudo yum install libxml2 执行后，安装了libxml2包，结果还是提示这个错误，执行rpm -qa|grep libxml2，发现是有libxml2的包的，后来发现，其实需要的是libxml2-devel 包，所以，正确的解决办法是，安装libxml2-devel包，执行``` 即可。&lt;/p&gt;
&lt;p&gt;再重新configure, 出现下图即是正常了.&lt;/p&gt;
&lt;div id="attachment_2287" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2013/12/20131203155821-php-libxml2-600x309.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2013/12/20131203155821-php-libxml2-600x309.png" alt="configure: error: xml2-config not found. Please check your libxml2 installation." width="600" height="309" class="size-large wp-image-2287" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 configure: error: xml2-config not found. Please check your libxml2 installation.
 &lt;/p&gt;</description></item><item><title>[libiconv_open]collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] 错误 1</title><link>https://fukun.org/archives/12012291.html</link><pubDate>Sun, 01 Dec 2013 09:15:40 +0800</pubDate><guid>https://fukun.org/archives/12012291.html</guid><description>&lt;p&gt;编译php时出现错误&lt;/p&gt;
&lt;p&gt;`编译php时出现错误&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;是由于没有安装 libiconv包，又没有yum源，无法通过yum直接安装，还需要自己手动来。&lt;/p&gt;
&lt;p&gt;先安装libiconv:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local
make
sudo make install
&lt;/pre&gt;
&lt;p&gt;然后重新configure php，再make就ok..&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;./configure --with-iconv=/usr/local
make clean
make
&lt;/pre&gt;</description></item><item><title>Nginx Gzip 压缩配置 IE6禁用</title><link>https://fukun.org/archives/11132274.html</link><pubDate>Wed, 13 Nov 2013 08:08:01 +0800</pubDate><guid>https://fukun.org/archives/11132274.html</guid><description>&lt;p&gt;gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小，这样，用户浏览页面的时候速度会块得多。gzip的压缩页面需要浏览器和服务器双方都支持，实际上就是服务器端压缩，传到浏览器后浏览器解压并解析。&lt;/p&gt;
&lt;p&gt;Nginx的压缩输出有一组gzip压缩指令来实现。相关指令位于http{….}两个大括号之间。&lt;/p&gt;
&lt;p&gt;gzip on;&lt;/p&gt;
&lt;p&gt;//该指令用于开启或关闭gzip模块(on/off)&lt;/p&gt;
&lt;p&gt;gzip_min_length 1k;&lt;/p&gt;
&lt;p&gt;//设置允许压缩的页面最小字节数，页面字节数从header头得content-length中进行获取。默认值是0，不管页面多大都压缩。建议设置成大于1k的字节数，小于1k可能会越压越大。&lt;/p&gt;
&lt;p&gt;gzip_buffers 4 16k;&lt;/p&gt;
&lt;p&gt;//设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位，安装原始数据大小以16k为单位的4倍申请内存。&lt;/p&gt;
&lt;p&gt;gzip_http_version 1.1;&lt;/p&gt;
&lt;p&gt;//识别http的协议版本(1.0/1.1)&lt;/p&gt;
&lt;p&gt;gzip_comp_level 2;&lt;/p&gt;
&lt;p&gt;//gzip压缩比，1压缩比最小处理速度最快，9压缩比最大但处理速度最慢(传输快但比较消耗cpu)&lt;/p&gt;
&lt;p&gt;gzip_types text/plain application/x-javascript text/css application/xml&lt;/p&gt;
&lt;p&gt;//匹配mime类型进行压缩，无论是否指定,”text/html”类型总是会被压缩的。&lt;/p&gt;
&lt;p&gt;gzip_vary on;&lt;/p&gt;
&lt;p&gt;//和http头有关系，加个vary头，给代理服务器用的，有的浏览器支持压缩，有的不支持，所以避免浪费不支持的也压缩，所以根据客户端的HTTP头来判断，是否需要压缩.&lt;/p&gt;
&lt;p&gt;同时由于IE6不支持gizp解压缩，所以在IE6下要关闭gzip压缩功能。使用&lt;/p&gt;
&lt;p&gt;gzip_disable “MSIE [1-6].”;&lt;/p&gt;
&lt;p&gt;nginx 配置gzip段如下：&lt;/p&gt;
&lt;p&gt;gzip on;&lt;/p&gt;
&lt;p&gt;gzip_min_length 1k;&lt;/p&gt;
&lt;p&gt;gzip_buffers 16 64k;&lt;/p&gt;
&lt;p&gt;gzip_http_version 1.1;&lt;/p&gt;
&lt;p&gt;gzip_comp_level 2;&lt;/p&gt;
&lt;p&gt;gzip_types text/plain application/x-javascript text/css application/xml;&lt;/p&gt;
&lt;p&gt;gzip_vary on;&lt;/p&gt;
&lt;p&gt;gzip_disable “MSIE [1-6].”;&lt;/p&gt;</description></item><item><title>三星note2 n7100拍照 反的</title><link>https://fukun.org/archives/11042272.html</link><pubDate>Mon, 04 Nov 2013 10:40:34 +0800</pubDate><guid>https://fukun.org/archives/11042272.html</guid><description>&lt;p&gt;启动相机后，上边一排设置图标全是反的，倒置的，拍照时屏幕显示是正确的，打开相册也都是颠倒的，很难受啊。。&lt;/p&gt;
&lt;p&gt;把新装的一些app给干掉了，还是这个样子。&lt;/p&gt;
&lt;p&gt;解决办法：&lt;/p&gt;
&lt;p&gt;关机， 把SIM卡和电池都重新装下，呆两分钟， 再开机就好了。&lt;/p&gt;</description></item><item><title>Linux 命令行下如何查看自己机器的外网ip</title><link>https://fukun.org/archives/10292270.html</link><pubDate>Tue, 29 Oct 2013 05:39:48 +0800</pubDate><guid>https://fukun.org/archives/10292270.html</guid><description>&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;curl ifconfig.me
&lt;/pre&gt;
&lt;p&gt;输入此条命令，就可以获取到本机的外网ip。&lt;/p&gt;</description></item><item><title>如何退出emacs</title><link>https://fukun.org/archives/10152268.html</link><pubDate>Tue, 15 Oct 2013 05:35:15 +0800</pubDate><guid>https://fukun.org/archives/10152268.html</guid><description>&lt;p&gt;&lt;strong&gt;Control-x Control-c&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Exit &lt;tt&gt;emacs&lt;/tt&gt; environment.&lt;/p&gt;</description></item><item><title>vim利用map映射执行脚本</title><link>https://fukun.org/archives/10062258.html</link><pubDate>Sun, 06 Oct 2013 12:41:16 +0800</pubDate><guid>https://fukun.org/archives/10062258.html</guid><description>&lt;p&gt;最近开始捡起C语音来看，《c语言实用基础》，一边看一边做例子学习。然后发现，每次写完一个例子后，都要写几个字符，去编译并执行一下，然后就想看看能不能利用vim的map映射，把这种常规性的命令绑定到一个快捷键上去，查了一些资料后，果真是可以实现的。&lt;/p&gt;
&lt;p&gt;先摆出来怎么用的。&lt;/p&gt;
&lt;p&gt;打开~/.vimrc文件，并在最后以后之后粘贴上一下代码：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;"映射命令行下的c编译并执行
cmap !gcc % &amp;&amp; ./a.out
&lt;/pre&gt;
&lt;p&gt;然后保存并关闭。&lt;/p&gt;
&lt;p&gt;再重新打开一个c文件，写好C代码后，进入命令行模式，按下ctrl+r，然后就可以直接编译并执行该c文件了。&lt;/p&gt;
&lt;p&gt;下边再解释一下为什么这么写。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cmap，指的是命令行下的映射，这种映射，在vim其它模式下是不生效的，这样也可以避免冲突。用法就是cmap {lhs} {rhs} , 在映射命令作用的模式中把键系列 {lhs} 映射为 {rhs}。并且映射后的 {rhs} 也被进行映射扫描。这个特性可以用来进行映射的嵌套和递归。顺带再说一下其它几种map的用法，nmap表示普通模式下，vmap表示可视模式下，imap表示插入模式下，默认的map，是包括普通模式和可视模式的。&lt;/li&gt;
&lt;li&gt;表示ctrl+r键&lt;/li&gt;
&lt;li&gt;%在vim命令行模式里表示当前文件&lt;/li&gt;
&lt;li&gt;表示模拟回车按下事件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你明白原理了，自己去写一些对自己有帮助的映射脚本吧。&lt;/p&gt;
&lt;p&gt;参考文章：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://vimcdoc.sourceforge.net/doc/map.html"&gt;http://vimcdoc.sourceforge.net/doc/map.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ibm.com/developerworks/cn/linux/l-vim-script-1/"&gt;http://www.ibm.com/developerworks/cn/linux/l-vim-script-1/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://haoxiang.org/2011/09/vim-modes-and-mappin/"&gt;http://haoxiang.org/2011/09/vim-modes-and-mappin/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>vim中表示当前目录和当前文件名的方法</title><link>https://fukun.org/archives/10012263.html</link><pubDate>Tue, 01 Oct 2013 12:44:30 +0800</pubDate><guid>https://fukun.org/archives/10012263.html</guid><description>&lt;p&gt;在命令行模式下：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;% 当前完整的文件名&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;****&lt;strong&gt;%:h 文件名的头部，即文件目录.例如../path/test.c就会为../path&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;%:t 文件名的尾部.例如../path/test.c就会为test.c&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;%:r 无扩展名的文件名.例如../path/test就会成为test&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;%:e 扩展名&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>http请求头信息：If-Modified-Since</title><link>https://fukun.org/archives/09242255.html</link><pubDate>Tue, 24 Sep 2013 04:04:23 +0800</pubDate><guid>https://fukun.org/archives/09242255.html</guid><description>&lt;p&gt;If-Modified-Since是标准的HTTP请求头标签，在发送HTTP请求时，把浏览器端缓存页面的最后修改时间一起发到服务器去，服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。&lt;/p&gt;
&lt;p&gt;在你的请求中发送一个 If-Modified-Since 头信息，它包含了上一次从服务器连同数据所获得的日期。如果数据从那时起没有改变，服务器将返回一个特殊的 HTTP 状态代码 304，这意味着 “从上一次请求后这个数据没有改变”。&lt;/p&gt;
&lt;p&gt;当服务器发送状态编码 304 时，不再重新发送数据。您仅仅获得了这个状态代码。所以当数据没有更新时，你不需要一次又一次地下载相同的数据；服务器假定你有本地的缓存数据。&lt;/p&gt;</description></item><item><title>前端机超时3s ,9s</title><link>https://fukun.org/archives/09232276.html</link><pubDate>Mon, 23 Sep 2013 10:55:57 +0800</pubDate><guid>https://fukun.org/archives/09232276.html</guid><description>&lt;p&gt;这几天遇到一个很奇怪的问题，搜索的前端机经常会有一些超时的请求，以为是业务哪块效率不行导致的。后来就写了一个php，只做 echo 1 操作，结果在大量curl时，还是会出先超时的情况，而且仔细分析后，出现的超时要么是比正常时间多3秒整，要么是比正常时间多9s整，只有这两种可能，没有其它的超时时间，这就更奇怪了，。查了一下资料，3s和9s的超时，是网络问题引起的。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.spinics.net/lists/linux-net/msg17545.html" target="_blank"&gt;Mysterious 3 and 9 second delays calling connect()&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;`这几天遇到一个很奇怪的问题，搜索的前端机经常会有一些超时的请求，以为是业务哪块效率不行导致的。后来就写了一个php，只做 echo 1 操作，结果在大量curl时，还是会出先超时的情况，而且仔细分析后，出现的超时要么是比正常时间多3秒整，要么是比正常时间多9s整，只有这两种可能，没有其它的超时时间，这就更奇怪了，。查了一下资料，3s和9s的超时，是网络问题引起的。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.spinics.net/lists/linux-net/msg17545.html" target="_blank"&gt;Mysterious 3 and 9 second delays calling connect()&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2013/11/20131126174519-backlog-3s-nginx.png"&gt;&lt;img class="aligncenter size-large wp-image-2278" alt="20131126174519-backlog-3s-nginx" src="//fukun.org/wp-content/uploads/2013/11/20131126174519-backlog-3s-nginx-600x175.png" width="600" height="175" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div id="attachment_2279" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2013/11/20131126174439-backlog-9s-nginx-.png"&gt;&lt;img class="size-large wp-image-2279" alt="nginx php 3s 9s timeout delay" src="//fukun.org/wp-content/uploads/2013/11/20131126174439-backlog-9s-nginx--600x194.png" width="600" height="194" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 nginx php 3s 9s timeout delay
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;再底层的东西也咱现在也不了解啊。。还得慢慢学啊，可是问题还得解决啊。。&lt;/p&gt;
&lt;p&gt;于是把问题抛给了op的同事，，最后解决了。。&lt;/p&gt;
&lt;p&gt;解决办法：&lt;/p&gt;
&lt;p&gt;修改 /usr/local/nginx/conf.d/default.conf 的 backlog=8192 后，超时3秒、9秒的问题得到验证解决。&lt;/p&gt;
&lt;p&gt;修改了nginx的默认的backlog参数。&lt;/p&gt;
&lt;p&gt;具体原因是啥，现在也不懂，记录下来，以后慢慢参悟吧。&lt;/p&gt;</description></item><item><title>nginx与HTTP_X_FILENAME</title><link>https://fukun.org/archives/09092251.html</link><pubDate>Mon, 09 Sep 2013 07:55:27 +0800</pubDate><guid>https://fukun.org/archives/09092251.html</guid><description>&lt;p&gt;在实现一个html5异步批量上传文件的功能时，遇到一个例子，使用xhr进行post提交，会模拟一个HTTP_X_FILENAME请求头，可是这个请求信息$_SERVER[‘HTTP_X_FILENAME’] 只有在apache下才能获取到，在nginx下无法获取。所以可以简单粗暴的，直接获取输入流（php://input）进行判断。&lt;/p&gt;</description></item><item><title>vim 复制粘贴替换</title><link>https://fukun.org/archives/09022249.html</link><pubDate>Mon, 02 Sep 2013 11:49:54 +0800</pubDate><guid>https://fukun.org/archives/09022249.html</guid><description>&lt;p&gt;先用v选中单词，然后按y复制。&lt;/p&gt;
&lt;p&gt;再找到要替换的单词开头，按v,再按e，选中单词，这时候按p粘贴，就可以用上边复制的单词替换掉当前选中的单词了。&lt;/p&gt;</description></item><item><title>溢出 C语言</title><link>https://fukun.org/archives/08252246.html</link><pubDate>Sun, 25 Aug 2013 13:13:10 +0800</pubDate><guid>https://fukun.org/archives/08252246.html</guid><description>&lt;p&gt;在C 语言中, 若初值上溢, 则编译通不过; 若运行动态上溢, 则运行出错; 若下溢, 则值按0 处理。对于无符号整数, 其值若超过最大无符号数, 则取其最大无符号数加1 的模; 对于有符号整数, 最大正整数的值加1 后变成最大的负整数值, 最大的负整数值减1 后变成最大的正整数值。&lt;/p&gt;</description></item><item><title>vim 更改折叠颜色</title><link>https://fukun.org/archives/08192241.html</link><pubDate>Mon, 19 Aug 2013 03:42:37 +0800</pubDate><guid>https://fukun.org/archives/08192241.html</guid><description>&lt;p&gt;我的vim主题下，折叠的字体颜色都是亮度很大的，很难看清楚，于是需要改一下。&lt;/p&gt;
&lt;p&gt;查找后发现，折叠是这样设置的。&lt;/p&gt;
&lt;p&gt;颜 色 *fold-colors*&lt;/p&gt;
&lt;p&gt;对关闭的折叠的颜色的设定由 Folded 高亮组 |hl-Folded| 决定。对折叠栏的颜色的设&lt;/p&gt;
&lt;p&gt;定由 FolderColumn 高亮组 |hl-FoldColumn| 决定。&lt;/p&gt;
&lt;p&gt;下面是设定颜色的例子:&lt;/p&gt;
&lt;p&gt;:highlight Folded guibg=grey guifg=blue&lt;/p&gt;
&lt;p&gt;:highlight FoldColumn guibg=darkgrey guifg=white&lt;/p&gt;
&lt;p&gt;在我的vim里，执行:highlight Folded ,发现值为:ctermfg=4 ctermbg=7&lt;/p&gt;
&lt;p&gt;于是修改进行执行:highlight Folded ctermfg=0 ctermbg=7进行修改尝试，发现ctermfg=0时效果最好，&lt;/p&gt;
&lt;p&gt;最后编辑~/.vimrc，把:highlight Folded ctermfg=0 ctermbg=7粘贴到最后一行，以后再开vim，就可以直接使用这种效果了。&lt;/p&gt;
&lt;div id="attachment_2243" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2013/08/vim-fold-color-hightlight-ctermfg.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2013/08/vim-fold-color-hightlight-ctermfg-600x440.png" alt="vim-fold-color-hightlight-ctermfg" width="600" height="440" class="size-large wp-image-2243" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 vim-fold-color-hightlight-ctermfg
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>linux 压缩解压zip中文名文件，乱码解决</title><link>https://fukun.org/archives/08062238.html</link><pubDate>Tue, 06 Aug 2013 03:11:43 +0800</pubDate><guid>https://fukun.org/archives/08062238.html</guid><description>&lt;p&gt;压缩解压缩的文件中的中文名乱码，是由于windows的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致，所以导致了文件名乱码的问题，解决这个问题的做法就是对文件名进行转码。(仅仅是对文件名，不是对文件内容)&lt;/p&gt;
&lt;p&gt;Linux中专门提供了一种工具convmv进行文件名编码的转换，可以将文件名从GBK转换成UTF-8编码,或者从UTF-8到GBK进行转码。&lt;/p&gt;
&lt;p&gt;首先看一下系统上是否安装了convmv,如果没安装的话用:&lt;/p&gt;
&lt;p&gt;yum install convmv&lt;/p&gt;
&lt;p&gt;安装。&lt;/p&gt;
&lt;p&gt;下面看一下convmv的具体用法：&lt;/p&gt;
&lt;p&gt;convmv -f 源编码 -t 新编码 [选项] 文件名&lt;/p&gt;
&lt;p&gt;常用参数：&lt;/p&gt;
&lt;p&gt;-r 递归处理子文件夹&lt;/p&gt;
&lt;p&gt;–notest 真正进行操作，请注意在默认情况下是不对文件进行真实操作的，而只是试验。&lt;/p&gt;
&lt;p&gt;–list 显示所有支持的编码&lt;/p&gt;
&lt;p&gt;–unescap 可以做一下转义，比如把%20变成空格&lt;/p&gt;
&lt;p&gt;比如我们有一个utf8编码的文件名，转换成GBK编码，命令如下：&lt;/p&gt;
&lt;p&gt;convmv -r -f UTF-8 -t GBK –notest utf8编码的文件名/或者文件夹&lt;/p&gt;
&lt;p&gt;如果是-r递归处理的话，文件夹内不能有非源编码的文件，否则会转化失败。&lt;/p&gt;
&lt;p&gt;this file was not validly encoded in UTF-8: “searchtoolsExport/��.txt”&lt;/p&gt;
&lt;p&gt;To prevent damage to your files, we won’t continue.&lt;/p&gt;
&lt;p&gt;First fix this or correct options!&lt;/p&gt;
&lt;p&gt;转换以后”utf8编码的文件名”会被转换成GBK编码（只是文件名编码的转换，文件内容不会发生变化）。&lt;/p&gt;
&lt;p&gt;然后在进行zip或者tar的打包/压缩，拷贝到windows下，就可以顺利打开，不乱码了。&lt;/p&gt;</description></item><item><title>php打包文件，并使用curl上传</title><link>https://fukun.org/archives/08012234.html</link><pubDate>Thu, 01 Aug 2013 09:21:37 +0800</pubDate><guid>https://fukun.org/archives/08012234.html</guid><description>&lt;p&gt;php打包zip文件，如果包含中文名，将文件名转化为GBK编码即可。&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
 
$zipfile = 'zipByPhp.zip';
 
$zip = new ZipArchive();//使用本类，linux需开启zlib，windows需取消php_zip.dll前的注释
if($zip-&amp;gt;open($zipfile, ZIPARCHIVE::CREATE)!==TRUE){
    exit('create zip file error');
}
$files = array('queryimg.php', 'multicurl.php');
foreach($files as $file){
    $addfilename = iconv('UTF-8', 'GBK//IGNORE', $file);
    $zip-&amp;gt;addFile($file, $addfilename);
}
$zip-&amp;gt;close();
&lt;/pre&gt;
&lt;p&gt;php curl上传文件&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$field = array("upimg"=&amp;gt;"@/tmp/phpzip.zip");//文件路径，前面要加@，表明是文件上传.key与后台处理文件对应,使用$_FILES['upimg']获取
$curl = curl_init("http://localhost/a.php");
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$field);//这里的$field必须是数组结构，不要自作聪明使用 http_build_query,否则不认文件了
curl_exec($curl);
&lt;/pre&gt;</description></item><item><title>VIM 代码折叠 :set foldmethod=marker</title><link>https://fukun.org/archives/07232231.html</link><pubDate>Tue, 23 Jul 2013 04:01:49 +0800</pubDate><guid>https://fukun.org/archives/07232231.html</guid><description>&lt;p&gt;VIM 代码折叠&lt;/p&gt;
&lt;p&gt;VIM代码折叠方式可以用”foldmethod”选项来设置，如: set foldmethod=indent&lt;/p&gt;
&lt;p&gt;有6种方式来折叠代码&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;manual //手工定义折叠&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;indent //用缩进表示折叠&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;expr　 //用表达式来定义折叠&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;syntax //用语法高亮来定义折叠&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;diff //对没有更改的文本进行折叠&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;marker //用标志折叠&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;vim 配置文件分为全局配置文件和用户配置文件&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;全局配置文件查找，在.vim 中输入:echo $VIM,一般为：/usr/share/vim/vimrc&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用户配置文件在用户主目录下，如：/home/fukun/.vimrc&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在vimrc文件中设置折叠方式：如 :set foldmethod=marker&lt;/p&gt;
&lt;p&gt;选定折叠方式后，就可以使用折叠命令进行折叠操作了．常用的折叠方式为indent和marker．&lt;/p&gt;
&lt;p&gt;indent是最为傻瓜式的折叠方法，根据缩进来的，只要你的代码保持良好的编写规范，在函数名的那行直接按下 za 就可以进行折叠了。&lt;/p&gt;
&lt;p&gt;推荐大家使用：&lt;strong&gt;marker折叠命令&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;因为比较通用，移植很方便。别人看你代码的时候直接就可以理解。&lt;/p&gt;
&lt;p&gt;marker折叠方式时，我们需要用标计来标识代码的折叠，系统默认是{{{和}}}&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>Supervisor的安装与使用入门</title><link>https://fukun.org/archives/07102224.html</link><pubDate>Wed, 10 Jul 2013 07:36:44 +0800</pubDate><guid>https://fukun.org/archives/07102224.html</guid><description>&lt;p&gt;Supervisor是一个进程监控程序。&lt;/p&gt;
&lt;p&gt;满足的需求是：我现在有一个进程需要每时每刻不断的跑，但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它，此时，我就需要使用到了Supervisor.&lt;/p&gt;
&lt;p&gt;先弄懂两个命令:&lt;/p&gt;
&lt;p&gt;supervisord : supervisor的服务器端部分，启动supervisor就是运行这个命令&lt;/p&gt;
&lt;p&gt;supervisorctl：启动supervisor的命令行窗口。&lt;/p&gt;
&lt;p&gt;需求：./open_search 这个进程是运行go的一个服务。我们要求这个服务能在意外停止后自动重启。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;安装&lt;/strong&gt;（Centos）：&lt;/p&gt;
&lt;p&gt;yum install python-setuptools&lt;/p&gt;
&lt;p&gt;easy_install supervisor&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;测试是否安装成功&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;echo_supervisord_conf&lt;/p&gt;</description></item><item><title>linux建立信任,已添加到authorized_keys，就是不成功;权限问题</title><link>https://fukun.org/archives/06142220.html</link><pubDate>Fri, 14 Jun 2013 07:57:52 +0800</pubDate><guid>https://fukun.org/archives/06142220.html</guid><description>&lt;p&gt;Linux主机间建立信任关系&lt;/p&gt;
&lt;p&gt;在主机A和主机B间建立信任关系，使主机A可以无密码ssh登陆主机B.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A主机上执行 ssh-keygen -t rsa -b 1024 (也可以使用 ssh-keygen -t dsa -b 1024)&lt;/li&gt;
&lt;li&gt;主目录下生成 .ssh目录&lt;/li&gt;
&lt;li&gt;进入~/.ssh目录&lt;/li&gt;
&lt;li&gt;执行 cat id_rsa.pub 将显示结果复制 (也可以使用cat id_dsa.pub，这个一般有现成的)&lt;/li&gt;
&lt;li&gt;B主机上进入主目录下的~/.ssh（如果没有，则执行ssh-keygen生成）&lt;/li&gt;
&lt;li&gt;将复制的结果粘贴到B主机.ssh目录下的authorized_keys文件的最后一行&lt;/li&gt;
&lt;li&gt;ok，信任关系建立了，在主机A上执行 ssh user@B 第一次执行，会提示一个确认,选择yes回车,结果不用输入密码，登录成功！&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;其中有三点需要注意的地方，如果已经按照以上方法做了，还是不可以，那就比照下边三条对比一下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;authorized_keys 文件必须是600权限(也就是-rw——-)或者644&lt;/li&gt;
&lt;li&gt;.ssh目录必须是700权限(也就是drwx——)&lt;/li&gt;
&lt;li&gt;/home/work目录 必须是 755权限 即drwxr-xr-x&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;第（3）条太坑了，就因为 /home/user 目录是777，不是755，怎么都不行，信任关系建不起来，最后把/home/user目录的权限由777改成755就立搞定了。。。&amp;gt;_&amp;lt;，好大的坑啊。。。&lt;/p&gt;</description></item><item><title>svn: Can’t convert string from ‘UTF-8’ to native encoding 解决办法</title><link>https://fukun.org/archives/05272217.html</link><pubDate>Mon, 27 May 2013 10:34:23 +0800</pubDate><guid>https://fukun.org/archives/05272217.html</guid><description>&lt;p&gt;``&lt;/p&gt;
&lt;p&gt;解决办法,把LC_ALL改成自己的编码，我之前一直是改LANG和LC_TYPE，但是不见生效 ：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;export LC_ALL=zh_CN.UTF-8&lt;/code&gt;&lt;/p&gt;</description></item><item><title>sudo echo ‘xxx’ &gt; /path/file 重定向时 Permission denied</title><link>https://fukun.org/archives/05232211.html</link><pubDate>Thu, 23 May 2013 06:31:01 +0800</pubDate><guid>https://fukun.org/archives/05232211.html</guid><description>&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo "echo '[yaf]' &amp;gt; /usr/local/php/etc/include/yaf.ini"
#Permission denied 权限不够
&lt;/pre&gt;
&lt;p&gt;使用sudo echo ‘xxx’ &amp;gt; /path/file 时，其实sudo只用在了 echo 上，而重定向没有用到sudo的权限，所以会出现“Permission denied”的情况，解决的方法也很简单，就是一个参数而已。加一个“ sh -c ”就可以把权限指定到整条shell了。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo sh -c "echo '[yaf]' &amp;gt; /usr/local/php/etc/include/yaf.ini"
&lt;/pre&gt;
&lt;p&gt;另一种方法是利用管道和 tee 命令，该命令可以从标准输入中读入信息并将其写入标准输出或文件中，具体用法如下：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;echo “xxxx” | sudo tee -a test.txt
&lt;/pre&gt;
&lt;p&gt;tee 命令de “-a” 选项的作用等同于 “&amp;raquo;” 命令，如果去除该选项，那么 tee 命令的作用就等同于 “&amp;gt;” 命令。&lt;/p&gt;</description></item><item><title>vim如何计算有多少个需要统计的字符？一行命令搞定。</title><link>https://fukun.org/archives/05222207.html</link><pubDate>Wed, 22 May 2013 07:45:04 +0800</pubDate><guid>https://fukun.org/archives/05222207.html</guid><description>&lt;div id="attachment_2208" style="width: 610px" class="wp-caption alignnone"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2013/05/vim-static-count-word-20130522153418.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2013/05/vim-static-count-word-20130522153418-600x202.png" alt="vim统计有多少个要搜索的字符" title="vim-static-count-word-20130522153418" width="600" height="202" class="size-large wp-image-2208" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 vim统计有多少个要搜索的字符
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;其实很简单，用到的就是替换功能：s&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:%s/pattern/&amp;/g
&lt;/pre&gt;
&lt;p&gt;　&lt;strong&gt;&amp;amp;&lt;/strong&gt; 就是用来表示前面匹配的字符串，所以做这个指令其实对文件本身并不会有什么改变。但是由于做的是全文的替换， vim 会告诉你有从多少行中多少个字串被取代。&lt;/p&gt;
&lt;p&gt;`&lt;div id="attachment_2208" style="width: 610px" class="wp-caption alignnone"&gt;
&lt;a href="//fukun.org/wp-content/uploads/2013/05/vim-static-count-word-20130522153418.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2013/05/vim-static-count-word-20130522153418-600x202.png" alt="vim统计有多少个要搜索的字符" title="vim-static-count-word-20130522153418" width="600" height="202" class="size-large wp-image-2208" /&gt;&lt;/a&gt;&lt;/p&gt;
 &lt;p class="wp-caption-text"&gt;
 vim统计有多少个要搜索的字符
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;其实很简单，用到的就是替换功能：s&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:%s/pattern/&amp;/g
&lt;/pre&gt;
&lt;p&gt;　&lt;strong&gt;&amp;amp;&lt;/strong&gt; 就是用来表示前面匹配的字符串，所以做这个指令其实对文件本身并不会有什么改变。但是由于做的是全文的替换， vim 会告诉你有从多少行中多少个字串被取代。&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;</description></item><item><title>Scan for additional .ini files in: (none); 如何添加ini附件目录</title><link>https://fukun.org/archives/05162215.html</link><pubDate>Thu, 16 May 2013 06:34:21 +0800</pubDate><guid>https://fukun.org/archives/05162215.html</guid><description>&lt;p&gt;在php编译时添加一些指定的参数来达到加载附加ini文件的目的：&lt;/p&gt;
&lt;p&gt;`在php编译时添加一些指定的参数来达到加载附加ini文件的目的：&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;</description></item><item><title>你知道是什么职位么?英文缩写=ui,ue,fe,rd,op,db,pm</title><link>https://fukun.org/archives/05082205.html</link><pubDate>Wed, 08 May 2013 11:20:55 +0800</pubDate><guid>https://fukun.org/archives/05082205.html</guid><description>&lt;p&gt;ui 是什么职位? ui 就是用户设计&lt;/p&gt;
&lt;p&gt;ue 是什么职位? ue用户体验&lt;/p&gt;
&lt;p&gt;fe 是什么职位? fe前端研发&lt;/p&gt;
&lt;p&gt;rd是什么职位? rd程序员&lt;/p&gt;
&lt;p&gt;op是什么职位? op运维&lt;/p&gt;
&lt;p&gt;db是什么职位? db数据库&lt;/p&gt;
&lt;p&gt;pm是什么职位? pm产品经理&lt;/p&gt;
&lt;p&gt;bd是什么职位? bd商务拓展&lt;/p&gt;</description></item><item><title>linux下添加PATH的几种方法【转载】</title><link>https://fukun.org/archives/04272201.html</link><pubDate>Sat, 27 Apr 2013 07:54:59 +0800</pubDate><guid>https://fukun.org/archives/04272201.html</guid><description>&lt;p&gt;方法有三：&lt;/p&gt;
&lt;p&gt;1.#PATH=$PATH:/etc/apache/bin&lt;/p&gt;
&lt;p&gt;使用这种方法,只对当前会话有效，也就是说每当登出或注销系统以后，PATH 设置就会失效&lt;/p&gt;
&lt;p&gt;2.#vi /etc/profile&lt;/p&gt;
&lt;p&gt;在适当位置添加 PATH=$PATH:/etc/apache/bin （注意：＝ 即等号两边不能有任何空格）&lt;/p&gt;
&lt;p&gt;这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变&lt;/p&gt;
&lt;p&gt;3.#vi ~/.bash_profile&lt;/p&gt;
&lt;p&gt;修改PATH行,把/etc/apache/bin添加进去&lt;/p&gt;
&lt;p&gt;这种方法是针对用户起作用 的.&lt;/p&gt;
&lt;p&gt;4.#vi ~/.bashrc&lt;/p&gt;
&lt;p&gt;PATH=$PATH:/etc/apache/bin&lt;/p&gt;
&lt;p&gt;export PATH&lt;/p&gt;
&lt;p&gt;这种方法也是针对用户起作用。比如如果是在root权限操作，则root用户有效。&lt;/p&gt;
&lt;p&gt;注意：想改变PATH，必须重新登陆才能生效，以下方法可以简化工作：&lt;/p&gt;
&lt;p&gt;如果修改了/etc/profile，那么编辑结束后执行source profile 或 执行点命令 ./profile,PATH的值就会立即生效了。&lt;/p&gt;
&lt;p&gt;这个方法的原理就是再执行一次/etc/profile shell脚本，注意如果用sh /etc/profile是不行的，因为sh是在子shell进程中执行的，即使PATH改变了也不会反应到当前环境中，但是source是在当前 shell进程中执行的，所以我们能看到PATH的改变。&lt;/p&gt;
&lt;p&gt;摘自：&lt;a rel="nofollow" href="http://hi.baidu.com/jsxjgdvqatbfgqq/item/27d41611065860ddbe904213" target="_blank"&gt;linux下添加PATH的几种方法【转载加修改】&lt;/a&gt;&lt;/p&gt;</description></item><item><title>php使用simpleXML 添加 CDATA 格式数据</title><link>https://fukun.org/archives/04192195.html</link><pubDate>Fri, 19 Apr 2013 03:38:34 +0800</pubDate><guid>https://fukun.org/archives/04192195.html</guid><description>&lt;p&gt;在做项目的时候，遇到一个需要处理xml文件的任务。把合作方传来的文件，加工下给引擎录入。&lt;/p&gt;
&lt;p&gt;但是发现simpleXML没办法直接很方便的添加CDATA格式的数据，这样就会有很多问题。可能导致导出的xml格式错误。&lt;/p&gt;
&lt;p&gt;找到了一个方法，分享给大家：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
/**
* to show &amp;lt;title lang="en"&amp;gt;&amp;lt;![CDATA[Site Title]]&amp;gt;&amp;lt;/title&amp;gt; instead of &amp;lt;title lang="en"&amp;gt;Site Title&amp;lt;/title&amp;gt;
*
*/
class SimpleXMLExtended extends SimpleXMLElement
 {
 public function addCData($cdata_text)
 {
 $node = dom_import_simplexml($this); 
 $no = $node-&amp;gt;ownerDocument; 
 $node-&amp;gt;appendChild($no-&amp;gt;createCDATASection($cdata_text)); 
 } 
 }
$xmlFile = 'config.xml';
// instead of $xml = new SimpleXMLElement('&amp;lt;sites/&amp;gt;');
$xml = new SimpleXMLExtended('&amp;lt;sites/&amp;gt;');
$site = $xml-&amp;gt;addChild('site');
// instead of $site-&amp;gt;addChild('site', 'Site Title');
$site-&amp;gt;title = NULL; // VERY IMPORTANT! We need a node where to append
$site-&amp;gt;title-&amp;gt;addCData('Site Title');
$site-&amp;gt;title-&amp;gt;addAttribute('lang', 'en');
$xml-&amp;gt;asXML($xmlFile);
?&amp;gt;
&lt;/pre&gt;</description></item><item><title>VIM学习笔记 寄存器 (Registers)</title><link>https://fukun.org/archives/04102197.html</link><pubDate>Wed, 10 Apr 2013 06:44:15 +0800</pubDate><guid>https://fukun.org/archives/04102197.html</guid><description>&lt;p&gt;将寄存器与各种删除、复制、粘贴命令组合使用，能够大大提高编辑文本的效率。&lt;/p&gt;
&lt;h2 id="指定寄存器"&gt;指定寄存器&lt;/h2&gt;
&lt;p&gt;在复制或删除文本时，可以使用”register命令将文本放入指定的寄存器中。例如以下命令，将复制的文本放到寄存器a中，同时文本也会被放入未命名寄存器中。&lt;/p&gt;
&lt;p&gt;“ayy&lt;/p&gt;
&lt;p&gt;如果再使用相应的大写字母来指定寄存器，那么会将当前行内容追加到寄存器a中，这时该寄存器中就有了两行文本。&lt;/p&gt;
&lt;p&gt;“Ayy&lt;/p&gt;
&lt;h2 id="查看寄存器"&gt;查看寄存器&lt;/h2&gt;
&lt;p&gt;使用registers命令，可以查看特定寄存器中的内容。例如以下命令，可以查看寄存器a中的内容：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:register a
--- Registers ---
"a PjjjjVjjjxkVkkky^J^I^I$this-&amp;gt;getView()-&amp;gt;assign("exception", $exception);^J
&lt;/pre&gt;
&lt;p&gt;如果想要查看所有寄存中的内容，可以使用以下命令：&lt;/p&gt;
&lt;p&gt;:register&lt;/p&gt;
&lt;div id="attachment_2198" style="width: 610px" class="wp-caption alignnone"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2013/04/20130419_vim_register.png"&gt;&lt;img class="size-large wp-image-2198" title="20130419_vim_register" src="//fukun.org/wp-content/uploads/2013/04/20130419_vim_register-600x374.png" alt="20130419_vim_register" width="600" height="374" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 20130419_vim_register
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>vim下对php支持很好的 colorscheme；</title><link>https://fukun.org/archives/03202192.html</link><pubDate>Wed, 20 Mar 2013 09:28:54 +0800</pubDate><guid>https://fukun.org/archives/03202192.html</guid><description>&lt;p&gt;shell下，可以通过 “ls -l /usr/share/vim/vim70/colors/.”查看本机都安装了哪些主题，比如本人开发机，有如下主题：&lt;/p&gt;
&lt;p&gt;blue.vim&lt;/p&gt;
&lt;p&gt;darkblue.vim&lt;/p&gt;
&lt;p&gt;default.vim&lt;/p&gt;
&lt;p&gt;delek.vim&lt;/p&gt;
&lt;p&gt;desert.vim&lt;/p&gt;
&lt;p&gt;elflord.vim&lt;/p&gt;
&lt;p&gt;evening.vim&lt;/p&gt;
&lt;p&gt;koehler.vim&lt;/p&gt;
&lt;p&gt;morning.vim&lt;/p&gt;
&lt;p&gt;murphy.vim&lt;/p&gt;
&lt;p&gt;pablo.vim&lt;/p&gt;
&lt;p&gt;peachpuff.vim&lt;/p&gt;
&lt;p&gt;ron.vim&lt;/p&gt;
&lt;p&gt;shine.vim&lt;/p&gt;
&lt;p&gt;slate.vim&lt;/p&gt;
&lt;p&gt;torte.vim&lt;/p&gt;
&lt;p&gt;zellner.vim&lt;/p&gt;
&lt;p&gt;基本上是挨个试了一次，发现peachpuff是对php支持最好的，效果比较让人满意。&lt;/p&gt;
&lt;p&gt;编辑~/.vimrc，添加一行&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:colorscheme peachpuff
&lt;/pre&gt;
&lt;p&gt;每次vim打开就是这个主题了。用起来比较舒服，配图一张：&lt;/p&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2013/03/vim-colorscheme-peachpuff-php.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2013/03/vim-colorscheme-peachpuff-php-600x335.png" alt="vim-colorscheme-peachpuff-php" title="vim-colorscheme-peachpuff-php" width="600" height="335" class="alignnone size-large wp-image-2193" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>jQuery,IE7,url,www,http,A Bug</title><link>https://fukun.org/archives/03112189.html</link><pubDate>Mon, 11 Mar 2013 06:58:56 +0800</pubDate><guid>https://fukun.org/archives/03112189.html</guid><description>&lt;p&gt;今天遇到一个怪事，在一个页面下， 有一个区域，用来动态的显示一些数据，主要是显示一个url，会使用jQuery去动态的改变a标签的属性，来显示相关信息。&lt;/p&gt;
&lt;p&gt;但是却发现，在IE7下，当改变了a标签的属性之后，凡是www开头的url，显示文本都会添加一个http://，让人费解。&lt;/p&gt;
&lt;p&gt;后来发现是一个小bug，但是不确定是jQuery还是IE7的问题。&lt;/p&gt;
&lt;p&gt;解决方案就在设定A标签的属性的顺序上。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;//当顺序为
this.linkElem.html(data.dspurl).attr('href', data.link).attr('title', data.link);
//时，就会发生以上怪现象，但是如果改变其顺序
this.linkElem.attr('href', data.link).attr('title', data.link).text(data.dspurl);
//就会正常了。
&lt;/pre&gt;</description></item><item><title>ThinkPHP 3.1自动开启gzip ,ie6下载文件时文件名与下载头不一致问题的解决</title><link>https://fukun.org/archives/02222187.html</link><pubDate>Fri, 22 Feb 2013 09:12:54 +0800</pubDate><guid>https://fukun.org/archives/02222187.html</guid><description>&lt;p&gt;今天同事越到一个奇怪的问题，在下载头中指定了文件名，但是在ie6下，下载时却无法按给定的文件名给出保存，保存文件的名字为站点名称，在查阅一些资料后，确认为是gzip的问题，ie6不支持gzip，所以出现这个问题，但是在想关闭gzip的时候，发现关闭nginx的gzip压缩后，还是会有压缩头输出，后来才发现是ThinkPHP3.1版本新带的功能，自带“页面压缩输出支持”。&lt;/p&gt;
&lt;p&gt;使用一个配置变量可以手动关闭：&lt;/p&gt;
&lt;p&gt;‘OUTPUT_ENCODE’=&amp;gt;false&lt;/p&gt;</description></item><item><title>android模拟器无法打开：This application has requested the Runtime to terminate it in an unusual way</title><link>https://fukun.org/archives/02102184.html</link><pubDate>Sun, 10 Feb 2013 06:50:20 +0800</pubDate><guid>https://fukun.org/archives/02102184.html</guid><description>&lt;p&gt;android模拟器无法打开，报错如下：&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
&lt;/pre&gt;
&lt;p&gt;查找原因，结果是由于内存设置不当，我的PC是8G内存，模拟器上来就默认给了1G，结果总是启动不起来。后来改为512M，顺利启动，感觉有点太卡，就又改为了700M，仍然可以顺利启动。搞定。&lt;/p&gt;</description></item><item><title>周鸿祎360年会演讲：未来两年无线互联网格局将定【2013年1月25日】</title><link>https://fukun.org/archives/01302180.html</link><pubDate>Wed, 30 Jan 2013 01:42:26 +0800</pubDate><guid>https://fukun.org/archives/01302180.html</guid><description>&lt;p&gt;每次开年会，我都有一种冰火两重天的感觉，一方面年会是我们的团队和员工展示业绩、表现创意和才华、展现自我的机会，但另外一方面，我内心很自责，因为我本人的气质比较偏屌丝，然后又是一个典型的宅男，不像有的公司CEO会跳拉丁舞，女员工昏倒一大片。我自己也特别缺乏娱乐细胞，最近我带领几个技术宅男录了《天天向上》，录制过程中我明白了，没法跟别人比帅，也没法跟人家比拉丁舞，我们360还是老老实实地干好两件事儿，一个是创新，一个是做好产品，用这两件武器挑战巨头，实现屌丝的逆袭，这就是我们的气质。&lt;/p&gt;
&lt;p&gt;在年会上我想讲几个360的关键词，今天我们面临着二次创业，没有这几个关键词是不行的。这几个关键词，第一是用户至上，第二是创新，第三是创业精神。&lt;/p&gt;
&lt;p&gt;用户至上&lt;/p&gt;
&lt;p&gt;用户至上就是用户利益至上，用户体验至上，这是360公司的安身立命之本。今天，用户不想去了解你的技术是否很牛，不想知道你的公司有什么伟大的梦想和理念，他们真正在意的是，你的产品给我解决什么问题，你的产品给我创造什么价值，在互联网产品越来越同质化的时候，谁能够从用户出发，把体验做到极致，而不是简单地把功能进行罗列，最后让用户在使用你的产品的过程中，能够感受到方便、愉悦、放心，谁就可以真正地赢得用户的信任。&lt;/p&gt;
&lt;p&gt;用户至上这句话，说起来简单，做起来难。从战术层面来讲，做产品的时候要时刻从用户角度出发，而不是从自我出发。从战略层面来讲，用户至上是指企业要发自内心地尊重用户利益，不能为了赚大钱而损坏用户的利益。我们刚进入安全市场的时候，技术并不强，但是我们敢于横下一条心，不怕得罪同行，敢于查杀一切霸占用户电脑的流氓软件，于是我们赢得了用户的信任。360推出免费杀毒，敢于自宫，首先砍掉自己将近两亿的杀毒软件销售收入。如果没有这种精神，我们不可能从互联网安全上异军突起。这也给了我们一个很大的启示，那就是在商业利益和用户利益发生冲突的时候，商业利益必须要让位于用户利益。因为我相信互联网里存在着这样一个真理：互联网商业模式无论怎么千变万化，用户基础才是王道。脱离了用户基础，神马商业模式都是浮云。&lt;/p&gt;
&lt;p&gt;我们推出360搜索so.com，面对垄断的搜索巨头，要取得突破，最有利的武器还是用户至上。今天的搜索巨头太爱钱了，它把一个搜索引擎做成了广告引擎。过去，在厕所里张贴的老军医、老中医包治百病的小广告，都转移到搜索巨头那里去了。竞价排名，谁给钱谁就放在最前面，成了虚假医疗广告和欺诈钓鱼网站传播的主渠道。搜索巨头最近在吹嘘自己的技术，但如没有用户至上的精神，技术不会给用户造福，反而会成为谋取不义之财的工具。&lt;/p&gt;
&lt;p&gt;360的业务在不断扩大，很多产品也开始承担商业拓展的压力，但360的每一个员工，每一个产品团队要牢记一点：把用户至上真正体现在你们的商业策略和产品策略中。So.com不会只满足于10%的市场份额。我相信，只有市场竞争才能让企业竞相去讨好用户，创新才会出现，产业才会发展。如果是一家独大，即使CCTV一连批评它六天，它也依然是无动于衷。有人说，so.com的崛起仅仅证明渠道的力量，其实他们错了，我们最有力的武器不是浏览器，不是网址导航，而是我们要树立一个全新的价值主张，以及为此目标所要付出的努力和行动！&lt;/p&gt;
&lt;p&gt;别人往牛奶里掺三聚氰胺，你不掺；别人往白酒里面加塑化剂，你不加；别人往餐桌上添地沟油，你不添；别人往搜索结果里塞虚假医疗广告，你不塞。你能坚持这样做下去，就能得到用户的信任和支持。我认为，判断一个公司的价值，不是看它的市值，不是看它的收入，而是看它是否给亿万用户、给社会、给行业创造了价值。360在安全上一分钱不赚，但因为有了360，全国超过4亿的用户上网很安全，搜索不上当，网购不受骗，用户信任360对安全的承诺，这就是360真正的价值。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>Nginx Location 的语法详解,与简单配置</title><link>https://fukun.org/archives/01292177.html</link><pubDate>Tue, 29 Jan 2013 03:31:02 +0800</pubDate><guid>https://fukun.org/archives/01292177.html</guid><description>&lt;p&gt;一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx，它的发音为“engine X”， 是一个高性能的HTTP和反向代理服务器，同时也是一个IMAP/POP3/SMTP 代理服务器．&lt;/p&gt;
&lt;p&gt;二、Location语法语法：location [=|&lt;del&gt;|&lt;/del&gt;*|^~] /uri/ { … }&lt;/p&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;p&gt;1、~ 为区分大小写匹配&lt;/p&gt;
&lt;p&gt;2、~* 为不区分大小写匹配&lt;/p&gt;
&lt;p&gt;3、!&lt;del&gt;和!&lt;/del&gt;*分别为区分大小写不匹配及不区分大小写不匹配&lt;/p&gt;
&lt;p&gt;示例一：&lt;/p&gt;
&lt;p&gt;location / { }&lt;/p&gt;
&lt;p&gt;匹配任何查询，因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。&lt;/p&gt;
&lt;p&gt;示例二：&lt;/p&gt;
&lt;p&gt;location =/ {}&lt;/p&gt;
&lt;p&gt;仅仅匹配/&lt;/p&gt;
&lt;p&gt;示例三：&lt;/p&gt;
&lt;p&gt;location ~* .(gif|jpg|jpeg)$ ｛&lt;/p&gt;
&lt;p&gt;rewrite .(gif|jpg)$ /logo.png;&lt;/p&gt;
&lt;p&gt;｝&lt;/p&gt;
&lt;p&gt;注：不区分大小写匹配任何以gif，jpg，jpeg结尾的文件&lt;/p&gt;</description></item><item><title>shell脚本,每次读取文件的一行，逐行读取并处理</title><link>https://fukun.org/archives/01282174.html</link><pubDate>Mon, 28 Jan 2013 08:48:48 +0800</pubDate><guid>https://fukun.org/archives/01282174.html</guid><description>&lt;p&gt;shell脚本,每次读取文件的一行，逐行读取并做显示处理，如需其它处理，自行修改即可。&lt;/p&gt;
&lt;p&gt;写法一:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#!/bin/bash
while read line
do
 echo $line #这里可根据实际用途变化
done &amp;lt; filename		#filename 为需要读取的文件名
&lt;/pre&gt;
&lt;p&gt;写法二:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#!/bin/bash 

cat filename| while read line	#filename 为需要读取的文件名,也可以放在命令行参数里。
do
 echo $line
done
&lt;/pre&gt;</description></item><item><title>HTTP 400 错误 – 请求无效 (Bad request)</title><link>https://fukun.org/archives/01182171.html</link><pubDate>Fri, 18 Jan 2013 03:58:10 +0800</pubDate><guid>https://fukun.org/archives/01182171.html</guid><description>&lt;h2 id="http-400-错误-8211-请求无效-bad-request"&gt;HTTP 400 错误 – 请求无效 (Bad request)&lt;/h2&gt;
&lt;p&gt;介绍—http 400错误.&lt;/p&gt;
&lt;p&gt;您的Web服务器认为客户端发送的数据流 (例如您的浏览器或我们的 CheckUpDown 机器人 ) 是 ‘ 畸形的’，即没有完全遵守 HTTP 协议。 因此您的 Web 服务器无法理解和处理该请求。&lt;/p&gt;
&lt;p&gt;该错误几乎总是意味着客户端系统以及 / 或者您的Web服务器编程失败。&lt;/p&gt;
&lt;p&gt;HTTP 循环中的 400 错误&lt;/p&gt;
&lt;p&gt;任何客户端 ( 例如您的浏览器或我们的 CheckUpDown 机器人 ) ，都需要通过以下循环：&lt;/p&gt;
&lt;p&gt;从您站点的 IP 名称 ( 即您站点的网址-URL, 不带起始的 ‘http://’) 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP 地址转换的对应关系 ) 由域名服务器 (DNSs) 提供。&lt;/p&gt;
&lt;p&gt;打开一个 IP 套接字 (socket) 连接到该 IP 地址。&lt;/p&gt;
&lt;p&gt;通过该套接字写 HTTP 数据流。&lt;/p&gt;
&lt;p&gt;从您的Web服务器接受响应的 HTTP 数据流。该数据流包括状态编码， 其值取决于 HTTP 协议 。 解析该数据流得到 状态编码和其他有用信息。&lt;/p&gt;
&lt;p&gt;该错误在以上所述的最后一步生成，即当客户端收到 HTTP 状态编码并识别其为 ‘ 400’ 时&lt;/p&gt;
&lt;p&gt;解决 400 错误 – 一般方法&lt;/p&gt;
&lt;p&gt;在客户端或是Web服务器，或者两端都存在一个低层程序漏洞 (bug) 。 如果您无法进入这些系统的源程序， 您唯一能做的是把该问题提交给开发这些系统的公司的技术支持人员。&lt;/p&gt;</description></item><item><title>nginx 列出文件目录</title><link>https://fukun.org/archives/12272169.html</link><pubDate>Thu, 27 Dec 2012 05:26:55 +0800</pubDate><guid>https://fukun.org/archives/12272169.html</guid><description>&lt;p&gt;nginx 理出文件目录：&lt;/p&gt;
&lt;p&gt;代码备忘：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;location /upload/output {
 root /home/s/www/sostat;
 autoindex on;
 autoindex_exact_size on;
 autoindex_localtime on;
 }
&lt;/pre&gt;</description></item><item><title>php header IE6文件下载失败问题</title><link>https://fukun.org/archives/12202166.html</link><pubDate>Thu, 20 Dec 2012 08:05:19 +0800</pubDate><guid>https://fukun.org/archives/12202166.html</guid><description>&lt;p&gt;使用php header实现文件下载时，在IE6下总是提示不能下载，谷歌浏览器正常， 因此应该是IE的问题，IE下有个bug，微软官网有说明。&lt;a href="http://support.microsoft.com/kb/816868/zh-cn" target="_blank"&gt;错误消息：“Internet Explorer cannot download a file”（Internet Explorer 不能下载文件)&lt;/a&gt;,有个办法可以很好的解决，看代码好了：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")==false) {
	header("Cache-Control: no-cache");
	header("Pragma: no-cache");
} 
header('Cache-Control: public, must-revalidate, max-age=0');
header('Accept-Ranges: bytes');
header("Content-Type: application/force-download"); 
header("Content-Type: application/download"); 
header("Content-Type: application/octet-stream"); 
if(!empty($content_type)){
	header("Content-Type: ".$content_type); 
} 
header("Content-Transfer-Encoding: binary"); 
header('Content-Disposition:attachment;filename="'.rawurlencode($filename).'"'); 
&lt;/pre&gt;</description></item><item><title>nginx 取消缓存</title><link>https://fukun.org/archives/12162164.html</link><pubDate>Sun, 16 Dec 2012 13:01:22 +0800</pubDate><guid>https://fukun.org/archives/12162164.html</guid><description>&lt;p&gt;在开发的时候，总是不希望js，css文件缓存的，所以我们希望能取消缓存，修改nginx配置即可实现取消缓存。&lt;/p&gt;
&lt;p&gt;在配置文件的server{}内，添加这么一句即可：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;location ~ .*/.(css|js)$ {
 add_header Cache-Control 'no-store';
}
&lt;/pre&gt;</description></item><item><title>Linux下DIG命令的基本用法</title><link>https://fukun.org/archives/12112160.html</link><pubDate>Tue, 11 Dec 2012 06:37:53 +0800</pubDate><guid>https://fukun.org/archives/12112160.html</guid><description>&lt;p&gt;dig命令是一个用于询问 DNS 域名服务器的灵活的工具。&lt;/p&gt;
&lt;p&gt;它执行 DNS 搜索，显示从受请求的域名服务器返回的答复。&lt;/p&gt;
&lt;p&gt;多数 DNS 管理 员利用 dig 作为 DNS 问题的故障诊断，因为它灵活性好、易用、输出清晰。&lt;/p&gt;
&lt;p&gt;在 unix 和 linux 下，建议大家使用 dig 命令来代替 nslookup。 dig 命令的功能比 nslookup 强大很多，不像 nslookkup 还得 set 来 set 去的，怪麻烦的。&lt;/p&gt;
&lt;p&gt;下面是 dig 的一些比较常用的命令:&lt;/p&gt;
&lt;p&gt;　　# dig 最基本的用法&lt;/p&gt;
&lt;p&gt;　　dig @server sina.com.cn.&lt;/p&gt;</description></item><item><title>php-src 源代码下载地址</title><link>https://fukun.org/archives/12032157.html</link><pubDate>Mon, 03 Dec 2012 14:15:35 +0800</pubDate><guid>https://fukun.org/archives/12032157.html</guid><description>&lt;p&gt;php 源代码下载地址：&lt;a href="https://github.com/php/php-src/" target="_blank"&gt;&lt;a href="https://github.com/php/php-src/"&gt;https://github.com/php/php-src/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大版本地址（branches）：&lt;a href="https://github.com/php/php-src/branches" target="_blank"&gt;&lt;a href="https://github.com/php/php-src/branches"&gt;https://github.com/php/php-src/branches&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;小版本地址（tags）：&lt;a href="https://github.com/php/php-src/tags" target="_blank"&gt;&lt;a href="https://github.com/php/php-src/tags"&gt;https://github.com/php/php-src/tags&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>DB Proxy 原理[转]</title><link>https://fukun.org/archives/11052153.html</link><pubDate>Mon, 05 Nov 2012 08:00:19 +0800</pubDate><guid>https://fukun.org/archives/11052153.html</guid><description>&lt;p&gt;在大型互联网站的数据库部署中，部署最多的数据库为MySQL。随着MySQL中Innodb存储引擎对事物的支持，MySQL在互联网公司部署中，应用量越来越多。典型应用MySQL的公司有Google、Taobao、Baidu等大型互联网公司。MySQL的优势在于其高扩展性和价格优势等。实际上，MySQL可以免费应用于企业级的部署中。&lt;/p&gt;
&lt;p&gt;在MySQL复制方式部署中，有两种部署方式：同步复制和异步复制。同步复制采用NDB存储引擎，异步复制需要使用mysql-proxy结合master-slave实现。&lt;/p&gt;
&lt;p&gt;mysql-proxy是一个MySQL的代理服务器，用户的请求先发向mysql-proxy，然后mysql-proxy对用户的数据包进行分析，从下一层的mysql 数据库中选择一台数据库，将用户的请求包交给mysql处理。&lt;/p&gt;
&lt;p&gt;首先MySQL Proxy 以服务器的身份接受客户端的请求，根据相应配置对这些请求进行分析处理，然后以客户端的身份转发给相应的后端数据库服务器，再接受服务器的信息，然后返回给客户端。所以MySQL Proxy需要同时实现客户端和服务器的协议。由于要对客户端发送过来的SQL语句进行分析，还需要包含一个SQL解析器。MySQL Proxy通过使用lua脚本，来实现复杂的连接控制和过滤，从而实现读写分离和负载平衡。所以部署MySQL-Proxy需要安装运行Lua语言的环境。典型的MySQL-Proxy应用为实现读写分离。&lt;/p&gt;
&lt;p&gt;异步复制主要为了解决读写分离的问题。因为用户对网站的访问有读操作多，写操作少的特点。甚至像taobao.com这样的网站读写比例高达10:1，所以采用MySQL-Proxy结合主从异步复制实现读写分离是非常重要的增快访问速度的方法。这样如果有更高的用户访问需求，通过增加slave机器，不会对现有系统提供的服务产生影响而实现很好的、很灵活的业务扩展。&lt;/p&gt;</description></item><item><title>linux终端PS1命令行显示IP地址</title><link>https://fukun.org/archives/11022149.html</link><pubDate>Fri, 02 Nov 2012 05:37:03 +0800</pubDate><guid>https://fukun.org/archives/11022149.html</guid><description>&lt;p&gt;在使用终端时，由于经常需要切换到其它机器，导致不清楚现在到底在哪台机器，所以希望能在命令行处显示本机IP。&lt;/p&gt;
&lt;p&gt;只要做如下处理即可：&lt;/p&gt;
&lt;p&gt;编辑/home/username/.bashrc， 即~/.bashrc，加入以下一行。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;export PS1="[u@`/sbin/ifconfig eth0 | sed -n '0,/^s+inet addr:([0-9]+[.][0-9]+[.][0-9] +[.][0-9]+).*$/s//1/p'` w]$"
&lt;/pre&gt;
&lt;p&gt;显示效果：&lt;/p&gt;
&lt;div id="attachment_2151" style="width: 610px" class="wp-caption alignnone"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/11/linux-ps1-shell-bash-display-ip.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/11/linux-ps1-shell-bash-display-ip-600x125.jpg" alt="linux-ps1-shell-bash-display-ip" title="linux-ps1-shell-bash-display-ip" width="600" height="125" class="size-large wp-image-2151" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 linux-ps1-shell-bash-display-ip
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>4000012587 — 超市购物券过期-电话提醒</title><link>https://fukun.org/archives/10252147.html</link><pubDate>Thu, 25 Oct 2012 06:15:32 +0800</pubDate><guid>https://fukun.org/archives/10252147.html</guid><description>&lt;p&gt;刚才收到了4000012587这个电话，360安全卫士没有报垃圾电话，不知道是干啥的，想着反正接了也不会亏啥，就接了。接了之后才发现，原来是由于一直忙，忘了还有当初参加移动的活动送的40块钱超市购物券还没使用，提醒月底到期，要去消费。这点做的还挺不错的。没有放着等我过期，还有电话提醒，，。赞一个。&lt;/p&gt;</description></item><item><title>crontab使用进程锁flock解决冲突</title><link>https://fukun.org/archives/10232145.html</link><pubDate>Tue, 23 Oct 2012 09:36:23 +0800</pubDate><guid>https://fukun.org/archives/10232145.html</guid><description>&lt;p&gt;如果在crontab里有个定时任务设置为一分钟执行一次，但是它执行的时间可能会超过一分钟，此时crontab一分钟后会再次运行该脚本，这样就会出现冲突，如果程序不做容错处理，可能会导致出现一些问题。如果想解决这个问题，可以用Linux中的进程锁控制crontab执行的并发问题。&lt;/p&gt;
&lt;p&gt;给一个shell脚本加锁，使用flock命令。&lt;/p&gt;
&lt;p&gt;一般格式：&lt;/p&gt;
&lt;p&gt;flock [-sxun][-w #] fd#&lt;/p&gt;
&lt;p&gt;flock [-sxon][-w #] file [-c] command…&lt;/p&gt;
&lt;p&gt;常用选项：&lt;/p&gt;
&lt;p&gt;-s, –shared ：获得一个共享的锁。&lt;/p&gt;
&lt;p&gt;-x, –exclusive ：获得一个独占的锁。&lt;/p&gt;
&lt;p&gt;-u, –unlock ：移除一个锁，通常是不需要的，脚本执行完后会自动丢弃锁。&lt;/p&gt;
&lt;p&gt;-n, –nonblock ：如果没有立即获得锁直接失败而不是等待。&lt;/p&gt;
&lt;p&gt;-w, –timeout ：如果没有立即获得锁就等待指定的时间。&lt;/p&gt;
&lt;p&gt;-o, –close ：在运行命令前关闭文件的描述符。用于如果命令产生子进程时会不受锁的管控。&lt;/p&gt;
&lt;p&gt;-c, –command ：在shell中运行一个单独的命令。&lt;/p&gt;
&lt;p&gt;-h, –help ：显示帮助。&lt;/p&gt;
&lt;p&gt;-V, –version ：显示版本。&lt;/p&gt;</description></item><item><title>GoAgent翻墙 — MultiplexConnection Cannot hosts错误？</title><link>https://fukun.org/archives/10222143.html</link><pubDate>Mon, 22 Oct 2012 08:55:31 +0800</pubDate><guid>https://fukun.org/archives/10222143.html</guid><description>&lt;p&gt;今天在使用GoAgent时遇到了MultiplexConnection Cannot hosts错误，以前一直都没有问题的，下午突然开始犯病了。问了下同事，也不能用。&lt;/p&gt;
&lt;p&gt;解决办法自然也是有的。&lt;/p&gt;
&lt;p&gt;找到Goagent/local 目录下的proxy.ini 文件，打开，编辑[gae]选项卡下的profile = google_cn 选项，改为profile = google_hk。然后保存关闭。再重新打开GoAgent就可以啦。&lt;/p&gt;</description></item><item><title>php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host</title><link>https://fukun.org/archives/10132139.html</link><pubDate>Fri, 12 Oct 2012 19:51:52 +0800</pubDate><guid>https://fukun.org/archives/10132139.html</guid><description>&lt;p&gt;我们在开发测试时，有时web服务器会绑定一个域名，但是因为dns是无法解析的，我们需要设置host文件去访问。&lt;/p&gt;
&lt;p&gt;但是，如果我们是需要通过curl访问的话，无法访问该url的host主机。所以，需要通过指定host的方式来访问，具体访问方式如下：&lt;/p&gt;
&lt;p&gt;如果是linux下的curl命令：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;curl --silent -H "Host: www.digdeeply.info" "192.168.0.1/index.php"
&lt;/pre&gt;
&lt;p&gt;如果使用php的curl的话，使用curl_setopt设置一下CURLOPT_HTTPHEADER即可。&lt;/p&gt;
&lt;p&gt;请参考以下函数使用：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;//httpHeader	设置的 http head 参数 数组形式 如 array('Host: digdeeply.info')
function curl_by_host($url,$postString='',$httpHeader='')
{
	$ch = curl_init();
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_POSTFIELDS,$postString);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);

	if(!empty($httpHeader) &amp;&amp; is_array($httpHeader))
	{
		curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader);
	}
	$data = curl_exec($ch);
	$info = curl_getinfo($ch);
	curl_close($ch);
	if(curl_errno($ch)){
		return $info;
	}
	return $data;
}
&lt;/pre&gt;</description></item><item><title>php header ie/chrome 下载-文件名乱码-解决方案</title><link>https://fukun.org/archives/10082137.html</link><pubDate>Mon, 08 Oct 2012 09:47:21 +0800</pubDate><guid>https://fukun.org/archives/10082137.html</guid><description>&lt;p&gt;通过php的header函数，来指定为文件下载流，可以让文件正常下载，但是，文件名确很让人烦恼，文件名有中文时，如果页面编码为utf8，当文件名也为utf8时，在chrome下正常，但是在360se或者IE下，就成了乱码了；如果把文件名的编码设置为GBK，在IE下输出时候的文件名正常了，但是在chrome下，文件名又乱码了，这个太纠结了。&lt;/p&gt;
&lt;p&gt;抓包的话，能看到如下的数据流，仔细看看，感觉跟发送邮件时的数据流很相似，于是想想是不是也采用跟邮件似的文件流形式，来避免出现乱码。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HTTP/1.1 200 OK&amp;lt;br /&amp;gt; Date: Mon, 08 Oct 2012 17:32:12 GMT&amp;lt;br /&amp;gt; Content-Length: 204&amp;lt;br /&amp;gt; Content-Disposition: attachment; filename=%E6%B5%8B%E8%AF%95.txt&amp;lt;br /&amp;gt; Cache-Control: public&amp;lt;br /&amp;gt; Content-Type: application/octet-stream&amp;lt;br /&amp;gt; Connection: Close&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;所以做法就是把文件名进行编码，根据RFC 1738 ，把中文编码，再放到数据流里，输出的时候就会正常了。在php中，具体的做法就是这样了，贡献一个我自己的文件下载头信息。把这个放在前边，再在后边echo输出你希望下载的内容即可了。&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$name = rawurlencode($filename);
 header("Content-type: text/plain; charset=utf-8");
	header("Content-Type: application/force-download"); 
	header("Content-Type: application/octet-stream"); 
	header("Content-Type: application/download"); 
	header('Content-Disposition:inline;filename="'.$name.txt.'"'); 
	header("Content-Transfer-Encoding: binary"); 
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
	header("Pragma: no-cache"); 
&lt;/pre&gt;</description></item><item><title>Javascript 异步加载详解【转载】</title><link>https://fukun.org/archives/09052131.html</link><pubDate>Wed, 05 Sep 2012 01:52:15 +0800</pubDate><guid>https://fukun.org/archives/09052131.html</guid><description>&lt;div&gt;
 本文总结一下浏览器在 javascript 的加载方式。
&lt;/div&gt;
&lt;div&gt;
 关键词：异步加载（async loading），延迟加载（lazy loading），延迟执行（lazy execution），async 属性， defer 属性
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;strong&gt;一、同步加载与异步加载的形式&lt;/strong&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;strong&gt;1. 同步加载&lt;/strong&gt;
&lt;/div&gt;
&lt;div&gt;
 我们平时最常使用的就是这种同步加载形式：
&lt;/div&gt;
&lt;pre&gt;&amp;lt;script src="http://yourdomain.com/script.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;div&gt;
 &lt;div&gt;
 同步模式，又称阻塞模式，会阻止浏览器的后续处理，停止了后续的解析，因此停止了后续的文件加载（如图像）、渲染、代码执行。
 &lt;/div&gt;
 &lt;div&gt;
  js 之所以要同步执行，是因为 js 中可能有输出 document 内容、修改dom、重定向等行为，所以默认同步执行才是安全的。
 &lt;/div&gt;
 &lt;div&gt;
 以前的一般建议是把&amp;lt;script&amp;gt;放在页面末尾&amp;lt;/body&amp;gt;之前，这样尽可能减少这种阻塞行为，而先让页面展示出来。
 &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
 简单说：加载的网络 timeline 是瀑布模型，而异步加载的 timeline 是并发模型。
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;2. 常见异步加载（Script DOM Element）&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;
 &lt;pre&gt;(function() {
 var s = document.createElement('script');
 s.type = 'text/javascript';
 s.async = true;
 s.src = 'http://yourdomain.com/script.js';
 var x = document.getElementsByTagName('script')[0];
 x.parentNode.insertBefore(s, x);
 })();&lt;/pre&gt;
 &lt;p&gt;
 异步加载又叫非阻塞，浏览器在下载执行 js 同时，还会继续进行后续页面的处理。
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>cygwin 添加php扩展模块</title><link>https://fukun.org/archives/08312129.html</link><pubDate>Fri, 31 Aug 2012 08:09:38 +0800</pubDate><guid>https://fukun.org/archives/08312129.html</guid><description>&lt;p&gt;以添加openssl模块为例子&lt;/p&gt;
&lt;p&gt;进入源码目录&lt;/p&gt;
&lt;p&gt;cd php-5.2.13/ext/openssl&lt;/p&gt;
&lt;p&gt;#运行phpize生成configure&lt;/p&gt;
&lt;p&gt;/usr/local/php/bin/phpize&lt;/p&gt;
&lt;p&gt;#编译,指定php-config,注意这里的php-config,不是php.ini&lt;/p&gt;
&lt;p&gt;./configure –with-php-config=/usr/local/php/bin/php-config&lt;/p&gt;
&lt;p&gt;#上面可以添加–enable-openssl,也可以不用添加&lt;/p&gt;
&lt;p&gt;#编译安装&lt;/p&gt;
&lt;p&gt;make;make install&lt;/p&gt;
&lt;p&gt;#生成一个目录来存放扩展的模块&lt;/p&gt;
&lt;p&gt;mkdir /usr/local/php/etc/php/ext&lt;/p&gt;
&lt;p&gt;#复制openssl.so到模块目录&lt;/p&gt;
&lt;p&gt;cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so /usr/local/php/etc/ext/&lt;/p&gt;
&lt;p&gt;#编辑php.ini文件,指定PHP到哪个目录读模块&lt;/p&gt;
&lt;p&gt;vi /usr/local/php/etc/php.ini&lt;/p&gt;
&lt;p&gt;extension_dir=”/usr/local/php/etc/ext”&lt;/p&gt;
&lt;p&gt;#Load模块&lt;/p&gt;
&lt;p&gt;extension=openssl.so&lt;/p&gt;
&lt;p&gt;#保存退出&lt;/p&gt;
&lt;p&gt;再用/usr/local/php/bin/php -m|grep openssl查看是否有openssl.so&lt;/p&gt;
&lt;p&gt;备注：&lt;/p&gt;
&lt;p&gt;如果在运行phpize时报错：Cannot find autoconf. Please check your autoconf installation：&lt;/p&gt;
&lt;p&gt;`以添加openssl模块为例子&lt;/p&gt;
&lt;p&gt;进入源码目录&lt;/p&gt;
&lt;p&gt;cd php-5.2.13/ext/openssl&lt;/p&gt;
&lt;p&gt;#运行phpize生成configure&lt;/p&gt;
&lt;p&gt;/usr/local/php/bin/phpize&lt;/p&gt;
&lt;p&gt;#编译,指定php-config,注意这里的php-config,不是php.ini&lt;/p&gt;
&lt;p&gt;./configure –with-php-config=/usr/local/php/bin/php-config&lt;/p&gt;
&lt;p&gt;#上面可以添加–enable-openssl,也可以不用添加&lt;/p&gt;
&lt;p&gt;#编译安装&lt;/p&gt;
&lt;p&gt;make;make install&lt;/p&gt;
&lt;p&gt;#生成一个目录来存放扩展的模块&lt;/p&gt;
&lt;p&gt;mkdir /usr/local/php/etc/php/ext&lt;/p&gt;
&lt;p&gt;#复制openssl.so到模块目录&lt;/p&gt;
&lt;p&gt;cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so /usr/local/php/etc/ext/&lt;/p&gt;
&lt;p&gt;#编辑php.ini文件,指定PHP到哪个目录读模块&lt;/p&gt;
&lt;p&gt;vi /usr/local/php/etc/php.ini&lt;/p&gt;
&lt;p&gt;extension_dir=”/usr/local/php/etc/ext”&lt;/p&gt;
&lt;p&gt;#Load模块&lt;/p&gt;
&lt;p&gt;extension=openssl.so&lt;/p&gt;
&lt;p&gt;#保存退出&lt;/p&gt;
&lt;p&gt;再用/usr/local/php/bin/php -m|grep openssl查看是否有openssl.so&lt;/p&gt;
&lt;p&gt;备注：&lt;/p&gt;</description></item><item><title>擦，，，这是巧合么。</title><link>https://fukun.org/archives/08302125.html</link><pubDate>Thu, 30 Aug 2012 01:43:26 +0800</pubDate><guid>https://fukun.org/archives/08302125.html</guid><description>&lt;p&gt;8月22，一人到我的站来留言，邀请我去参加一个关于他们联盟的关键字的百度的SEO，我拒绝了。。&lt;/p&gt;
&lt;div id="attachment_2126" style="width: 610px" class="wp-caption alignnone"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/08/digdeeply.org-pv-baidu-no-seo-8-22.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/08/digdeeply.org-pv-baidu-no-seo-8-22-600x277.png" alt="百度seo" title="百度seo" width="600" height="277" class="size-large wp-image-2126" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 百度seo
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;然后，从8月23日开始，我的站从百度搜索来的量急剧下降。。。。几乎为0了。。。&lt;/p&gt;
&lt;div id="attachment_2127" style="width: 610px" class="wp-caption alignnone"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/08/digdeeply.org-pv-baidu-search-8-22.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/08/digdeeply.org-pv-baidu-search-8-22-600x149.png" alt="本站从百度来的流量" title="本站从百度来的流量" width="600" height="149" class="size-large wp-image-2127" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 本站从百度来的流量
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;擦嘞，，，这是巧合么。。。&lt;/p&gt;</description></item><item><title>crontab 添加设置偏移量(每分钟第几秒运行)，防止脚本冲突</title><link>https://fukun.org/archives/08232122.html</link><pubDate>Thu, 23 Aug 2012 01:08:35 +0800</pubDate><guid>https://fukun.org/archives/08232122.html</guid><description>&lt;p&gt;目前有一个需求，其它20台机器上每隔5分钟向另外一台服务器提交一些文件的MD5信息，这台服务器每隔几分钟跑一个脚本，把这些信息进行对比，如果有不一致的信息需要报警。&lt;/p&gt;
&lt;p&gt;现在的问题就是，系统自带的crontab定时只能每几分钟跑一次，这样每次脚本跑的时候都是在某分的第一秒。&lt;/p&gt;
&lt;p&gt;但是，如果在服务器提交信息的时候去进行比对信息，就可能发生异常了，所以需要把服务器上检查的脚本推迟一些运行，不要也是在1秒时候跑。&lt;/p&gt;
&lt;p&gt;crontab不支持，但是脚本支持延迟啊，所以，解决办法很简单。在检查脚本里开头 sleep 10s 即可啦。这样这个脚本在1秒时开始执行，但是sleep一会后才继续后边检查，所以，不会发生冲突了～～&lt;/p&gt;
&lt;p&gt;sleep用法Tips&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sleep 1 睡眠1秒&amp;lt;br /&amp;gt; sleep 1s 睡眠1秒&amp;lt;br /&amp;gt; sleep 1m 睡眠1分&amp;lt;br /&amp;gt; sleep 1h 睡眠1小时&amp;lt;br /&amp;gt; echo `expr $RANDOM % 60` 睡眠随机0-60秒&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Nginx出现“413 Request Entity Too Large”错误解决方法</title><link>https://fukun.org/archives/08222118.html</link><pubDate>Wed, 22 Aug 2012 02:31:49 +0800</pubDate><guid>https://fukun.org/archives/08222118.html</guid><description>&lt;p&gt;在使用curl上传POST一段数据时，被提示413 Request Entity Too Large，应该是nginx限制了上传数据的大小。&lt;/p&gt;
&lt;p&gt;解决方法就是&lt;/p&gt;
&lt;p&gt;打开nginx主配置文件nginx.conf，一般在/usr/local/nginx/conf/nginx.conf这个位置，找到http{}段，修改或者添加&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;client_max_body_size 2m;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;然后重启nginx，&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo /etc/init.d/nginxd reload
&lt;/pre&gt;
&lt;p&gt;即可。&lt;/p&gt;
&lt;p&gt;要是以php运行的话，这个大小client_max_body_size要和php.ini中的如下值的最大值差不多或者稍大，这样就不会因为提交数据大小不一致出现错误。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;post_max_size = 2M&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;upload_max_filesize = 2M&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Shell Script 变量中的路径解析，类似php的pathinfo()</title><link>https://fukun.org/archives/08212116.html</link><pubDate>Tue, 21 Aug 2012 09:01:55 +0800</pubDate><guid>https://fukun.org/archives/08212116.html</guid><description>&lt;p&gt;编写Shell 脚本时，如果变量的值是一个路径的话，我们可以轻易的解析路径path信息，就像php中的pathinfo一样，来获取当中的路径(dirname) 或档名(basename).&lt;/p&gt;
&lt;pre&gt;变量		结果			说明
${path}		/usr/local/bin/emacs	原本值
${path#/*/}	local/bin/emacs		去除第一个资料夹
${path##/*/}	emacs			只取档名(basname)
${path%/*}	/usr/local/bin		只取路径(dirname)
${path:15}	emacs			取第15个字元后的所有字元
${path:10:4}	/bin			取第10个字元后的4 个字元
&lt;/pre&gt;
&lt;p&gt;最后两个用法和Java 的subString 相同。&lt;/p&gt;</description></item><item><title>遍历获取目录所有文件的md5</title><link>https://fukun.org/archives/08202120.html</link><pubDate>Mon, 20 Aug 2012 06:37:12 +0800</pubDate><guid>https://fukun.org/archives/08202120.html</guid><description>&lt;p&gt;遍历获取目录所有文件的md5:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;DIR='/home/fukun'
find $DIR -type f -print0 | xargs -0 md5sum &amp;gt; ./md5.md5
&lt;/pre&gt;</description></item><item><title>一些常见的浏览器的 $_SERVER[‘HTTP_USER_AGENT’] 输出信息</title><link>https://fukun.org/archives/08172112.html</link><pubDate>Fri, 17 Aug 2012 06:50:02 +0800</pubDate><guid>https://fukun.org/archives/08172112.html</guid><description>&lt;p&gt;PHP 输出 $_SERVER[‘HTTP_USER_AGENT’]&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
var_export($_SERVER);
exit;
?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Ipad：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;[HTTP_HOST] =&amp;gt; 10.130.150.186
 [HTTP_USER_AGENT] =&amp;gt; Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5
 [HTTP_ACCEPT] =&amp;gt; application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
 [HTTP_ACCEPT_LANGUAGE] =&amp;gt; zh-cn
 [HTTP_ACCEPT_ENCODING] =&amp;gt; gzip, deflate
 [HTTP_CONNECTION] =&amp;gt; keep-alive
 [PATH] =&amp;gt; /usr/local/sbin
&lt;/pre&gt;
&lt;p&gt;Firefox x64 4.0b13pre on Windows 7 x64：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;[HTTP_HOST] =&amp;gt; localhost
 [HTTP_USER_AGENT] =&amp;gt; Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre
 [HTTP_ACCEPT] =&amp;gt; text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
 [HTTP_ACCEPT_LANGUAGE] =&amp;gt; zh-cn,en-us;q=0.7,en;q=0.3
 [HTTP_ACCEPT_ENCODING] =&amp;gt; gzip, deflate
 [HTTP_ACCEPT_CHARSET] =&amp;gt; UTF-8,*
 [HTTP_KEEP_ALIVE] =&amp;gt; 115
 [HTTP_CONNECTION] =&amp;gt; keep-alive
 [PATH] =&amp;gt; C:Program Files
&lt;/pre&gt;
&lt;p&gt;Firefox x86 3.6.15 on Windows 7 x64：&lt;/p&gt;</description></item><item><title>mysql中使用变量执行sql语句</title><link>https://fukun.org/archives/08142105.html</link><pubDate>Tue, 14 Aug 2012 10:03:19 +0800</pubDate><guid>https://fukun.org/archives/08142105.html</guid><description>&lt;p&gt;需要保存一些创建表的语句，这些语句的表前缀是可以设置的一个变量，就需要用到以下方法了，如果谁有更好的方法，请告知，谢谢。&lt;/p&gt;
&lt;p&gt;mysql中使用变量执行sql语句：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;set @PREFIX = 'fk_';
create database fk_manage;
use fk_manage;
set @QUERY = concat("create table ", @PREFIX, "user(
 id int(10) primary key auto_increment,
 name varchar(25) not null,
 password varchar(32) not null,
 email varchar(50),
 reg_date TIMESTAMP default 0,
 last_login TIMESTAMP default CURRENT_TIMESTAMP on update current_timestamp);");
prepare execsql from @QUERY;
execute execsql;

set @QUERY = concat("create table ", @PREFIX, "role(
 id int(10) primary key auto_increment,
 name varchar(25) not null,
 action varchar(32) not null,
 inuse tinyint default 1 comment '1 for use,0 for stop',
 create_date TIMESTAMP default CURRENT_TIMESTAMP);");
prepare execsql from @QUERY;
execute execsql;

deallocate prepare execsql;
&lt;/pre&gt;</description></item><item><title>svn: 无法使用外部编辑器取得日志信息；请尝试设定 $SVN_EDITOR 环境变数</title><link>https://fukun.org/archives/08112102.html</link><pubDate>Sat, 11 Aug 2012 05:29:09 +0800</pubDate><guid>https://fukun.org/archives/08112102.html</guid><description>&lt;p&gt;&lt;code&gt;svn: 提交失败(细节见下)：&amp;lt;br /&amp;gt; svn: 无法使用外部编辑器取得日志信息；请尝试设定 $SVN_EDITOR 环境变数，或是使用 --message (-m) 或 --file (-F) 选项&amp;lt;br /&amp;gt; svn: 没有一个 SVN_EDITOR，VISUAL 或 EDITOR 环境变数被设定，执行时期的设定中也没有 'editor-cmd' 选项&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;解决方法: 设置vim为你的SVM_EDITOR&lt;/p&gt;
&lt;p&gt;命令:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;export SVN_EDITOR=vim
&lt;/pre&gt;
&lt;p&gt;如果希望该环境变量能永久生效，把以下这行添加到你的个人文档目录下的.bash_profile文件中即可。文件路径~/.bash_profile&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;export SVN_EDITOR=vim
&lt;/pre&gt;</description></item><item><title>Linux系统下的svn命令用法详解</title><link>https://fukun.org/archives/08112100.html</link><pubDate>Sat, 11 Aug 2012 05:14:49 +0800</pubDate><guid>https://fukun.org/archives/08112100.html</guid><description>&lt;p&gt;svn在Linux下的使用（svn命令）&lt;/p&gt;
&lt;p&gt;1、将文件checkout到本地目录&lt;/p&gt;
&lt;p&gt;svn checkout path（path是服务器上的目录）&lt;/p&gt;
&lt;p&gt;例如：svn checkout svn://192.168.1.1/pro/domain&lt;/p&gt;
&lt;p&gt;简写：svn co&lt;/p&gt;
&lt;p&gt;2、往版本库中添加新的文件&lt;/p&gt;
&lt;p&gt;svn add file&lt;/p&gt;
&lt;p&gt;例如：svn add test.php(添加test.php)&lt;/p&gt;
&lt;p&gt;svn add *.php(添加当前目录下所有的php文件)&lt;/p&gt;
&lt;p&gt;3、将改动的文件提交到版本库&lt;/p&gt;
&lt;p&gt;svn commit -m “LogMessage“ [-N] [–no-unlock] PATH(如果选择了保持锁，就使用–no-unlock开关)&lt;/p&gt;
&lt;p&gt;例如：svn commit -m “add test file for my test“ test.php&lt;/p&gt;
&lt;p&gt;简写：svn ci&lt;/p&gt;</description></item><item><title>冒个泡</title><link>https://fukun.org/archives/08102097.html</link><pubDate>Fri, 10 Aug 2012 06:48:15 +0800</pubDate><guid>https://fukun.org/archives/08102097.html</guid><description>&lt;p&gt;单纯的冒个泡，告诉大家，我还健在。。。&lt;/p&gt;
&lt;p&gt;只不过由于最近在工作上有点变动，所以最近没咋更新了。现在又开始工作了，以后有什么心得，会总结下来跟大家分享的。&lt;/p&gt;</description></item><item><title>在启动win7虚拟无线网卡时出现“无法启动承载网络，组或资源的状态不是执行请求操作的正确状态”</title><link>https://fukun.org/archives/07192092.html</link><pubDate>Thu, 19 Jul 2012 03:20:32 +0800</pubDate><guid>https://fukun.org/archives/07192092.html</guid><description>&lt;p&gt;在启动win7虚拟无线网卡时出现“无法启动承载网络，组或资源的状态不是执行请求操作的正确状态”&lt;/p&gt;
&lt;p&gt;在使用netsh wlan set hostednetwork mode=allow ssid=mywifi key=pwd_wifi后提示已成功执行操作&lt;/p&gt;
&lt;p&gt;但在使用netsh wlan start hostednetwork时却提示无法启动承载网络，组或资源的状态不是执行请求操作的正确状态.&lt;/p&gt;
&lt;p&gt;解决办法：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这个问题产品的原因可能是因为在计算机重启过程当中，在即插即用资源重新平衡时，虚拟 Wi-fi 筛选驱动程序没有正确创建虚拟的 Wi-fi ® 适配器造成的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;要解决此问题，请你在设备管理器当中先禁用，然后启用无线网络适配器。执行此操作后，将自动创建 Microsoft 虚拟 Wi-fi ® 适配器。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;更多详细信息，你可以参考下面的链接：&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/2496820/zh-cn"&gt;http://support.microsoft.com/kb/2496820/zh-cn&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;关于如何使用笔记本创建WiFi热点，你可以参考下面的链接：&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.cnbeta.com/articles/103546.htm"&gt;http://www.cnbeta.com/articles/103546.htm&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Cygwin安装 autoscan 方法</title><link>https://fukun.org/archives/07042089.html</link><pubDate>Wed, 04 Jul 2012 03:21:41 +0800</pubDate><guid>https://fukun.org/archives/07042089.html</guid><description>&lt;p&gt;Cygwin下安装thrift，使用bootstrap.sh时候，提示./bootstrap.sh: line 24: autoscan: command not found，需要安装autoscan，而在Cygwin下搜索autoscan又没搜索到，Google下，有人说搜索autotools，也没搜索到。。最后分别搜索M4,autoconf,automake，安装这三个就可以了。&lt;/p&gt;</description></item><item><title>No module named zope.interface -windows cygwin -install zope</title><link>https://fukun.org/archives/07022087.html</link><pubDate>Mon, 02 Jul 2012 06:35:32 +0800</pubDate><guid>https://fukun.org/archives/07022087.html</guid><description>&lt;p&gt;今天安装了Twisted，使用的时候了报ImportError(ImportError: No module named zope.interface)：&lt;/p&gt;
&lt;pre class="brush: python; title: Example; notranslate" title="Example"&gt;from zope.interface import implements
&lt;/pre&gt;
&lt;p&gt;细心的话，在安装Twisted的时候应该能发现，对安装是有环境需求的：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This method is only necessary if you are trying to install Twisted from e.g. the Subversion repository, and you don’t want to acquire all the tools necessary to do the Official build.&lt;/p&gt;
&lt;p&gt;Install either Python 2.4 or Python 2.5&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Install ZopeInterface 3.3.0 or later for Python&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;需要安装ZopeInterface。&lt;/p&gt;
&lt;p&gt;但是如何安装这个扩展呢，在这里可以找到 &lt;a target="_blank" rel="nofollow" href="http://pypi.python.org/pypi/zope.interface"&gt;zope.interface&lt;/a&gt;，我选择的是安装zope.interface 3.8.0，然后点击Downloads我们可以看到一堆egg的文件，以及一个Source的文件，我们选择source的文件下载，放到cygwin环境下的某个目录里下，比如说/usr/src/.&lt;/p&gt;
&lt;p&gt;然后，使用cygwin，依次输入以下命令，即可安装完成。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;cd /usr/src
cd zope.interface.3.8
python setup.py install build --compiler=mingw32
python setup.py install
&lt;/pre&gt;</description></item><item><title>【原创】php curl 模拟实现单点登陆(PHP实现JS加密函数)</title><link>https://fukun.org/archives/06282080.html</link><pubDate>Thu, 28 Jun 2012 08:26:36 +0800</pubDate><guid>https://fukun.org/archives/06282080.html</guid><description>&lt;p&gt;【原创】转载请注明，来自：DigDeeply的博客： &lt;a target="_blank" rel="nofollow" href=" http://digdeeply.org/"&gt;&lt;a href="http://digdeeply.org/"&gt;http://digdeeply.org/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这几天晚上闲着没事干，偶然间发现新浪爱问的积分还可以换实物礼品，积分来源一部分就是提问回答之类的，还有一部分是要每天签到。我是懒人，也懒得每天提问回答啥的，为了那么个小礼品，也不值得。但是签到还是很简单的嘛，每天点一下就OK了。我比一般懒人还懒，每天点一下都懒得点，所以觉定做个模拟登陆，模拟签到的程序，放到SAE上去，每天帮我签个到，拿个积分就好了，哈哈。:)&lt;/p&gt;
&lt;p&gt;其实这个模拟登陆，也就是抓站的基础部分吧， 模拟登陆，获取登陆后的状态，然后模拟人的访问流程，获取访问结果，分析保存之……&lt;/p&gt;
&lt;p&gt;首先介绍一下抓站的利器吧，httpwatch，也可以用firefox下的firebug或者chrome下自带的开发者工具，其实我原来一直都是用firefox或者chrome的，但是听说httpwatch很好，就拿来试用一下，结果用的还真是很舒服，不错。其次就是Snoopy.class.php，我用PHP，这个PHP类真是好用到极致了，用来抓站so easy。但是这个类用来抓一般的基于http的站是没问题的，如果要是https的就麻烦了，这个类在抓https的站时，采用的不是php本身的curl了，使用的是Linux/Unix下的原生CURL，所以这个类在windows下用着很麻烦，需要自己装一个windows下能用的curl，并且配置好环境。在sae下直接就是不行的了，如果是用Linux/Unix的话，就很方便了~~指定好curl的路径就可以了。我也有一个https的模拟登录签到的脚本，使用的是php的curl，没有使用Snoopy。&lt;/p&gt;
&lt;p&gt;由于新浪采用了单点登陆，所以一般的登陆方法是不行的了，不是直接构造用户名密码POST到一个login action页面完事。先使用httpwatch抓取一下登陆的流程吧。&lt;/p&gt;
&lt;div id="attachment_2081" style="width: 610px" class="wp-caption alignnone"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/06/201206281545-php-curl-js-function-login-sso-encrypt.jpg"&gt;&lt;img class="size-large wp-image-2081" title="201206281545-php-curl-js-function-login-sso-encrypt" src="//fukun.org/wp-content/uploads/2012/06/201206281545-php-curl-js-function-login-sso-encrypt-600x339.jpg" alt="httpwatch抓取的登录新浪爱问的流程" width="600" height="339" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 httpwatch抓取的登录新浪爱问的流程
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>css画阴阳八卦</title><link>https://fukun.org/archives/06202073.html</link><pubDate>Wed, 20 Jun 2012 06:12:02 +0800</pubDate><guid>https://fukun.org/archives/06202073.html</guid><description>&lt;div class="shape"&gt;
 &lt;h2&gt;
 Yin Yang via Alexander Futekov
 &lt;/h2&gt;
 &lt;div id="yin-yang"&gt;
 &lt;/div&gt;
 &lt;pre class="brush: css; title: Example; notranslate" title="Example"&gt;
#yin-yang {
	width: 96px;
	height: 48px;
	background: #eee;
	border-color: red;
	border-style: solid;
	border-width: 2px 2px 50px 2px;
	border-radius: 100%;
	position: relative;
}
#yin-yang:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	background: #eee;
	border: 18px solid red;
	border-radius: 100%;
	width: 12px;
	height: 12px;
}
#yin-yang:after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: red;
	border: 18px solid #eee;
	border-radius:100%;
	width: 12px;
	height: 12px;
} 
&lt;/pre&gt;
&lt;/div&gt;</description></item><item><title>PHP,Mysql-根据一个给定经纬度的点，进行附近地点查询–合理利用算法，效率提高2125倍</title><link>https://fukun.org/archives/06152067.html</link><pubDate>Fri, 15 Jun 2012 09:21:07 +0800</pubDate><guid>https://fukun.org/archives/06152067.html</guid><description>&lt;p&gt;目前的工作是需要对用户的一些数据进行分析，每个用户都有若干条记录，每条记录中有用户的一个位置，是用经度和纬度表示的。&lt;/p&gt;
&lt;p&gt;还有一个给定的数据库，存储的是一些已知地点以及他们的经纬度，内有43W多条的数据。&lt;/p&gt;
&lt;p&gt;现在需要拿用户的经纬度和已知地点进行距离匹配，如果它们之间的距离小于一定的数据，比如说500米，就认为用户是在这个地点。&lt;/p&gt;
&lt;p&gt;MYSQL本身是支持空间索引的，但是在5.x的版本中，取消了对Distance()和Related()的支持，参考这里：&lt;a target="_blank" rel="nofollow" href="http://dev.mysql.com/doc/refman/5.1/zh/spatial-extensions-in-mysql.html#functions-that-test-spatial-relationships-between-geometries"&gt;MySQL 5.1参考手册 :: 19. 中的空间扩展 19.5.6. 测试几何类之间空间关系的函数&lt;/a&gt;，无法使用空间的距离函数去直接去查询距离在一定范围内的点。所以，我首先想到的是，对每条记录，去进行遍历，跟数据库中的每一个点进行距离计算，当距离小于500米时，认为匹配。这样做确实能够得到结果，但是效率极其低下，因为每条记录都要去循环匹配40W条数据，其消耗的时间可想而知。经过记录，发现每条记录处理的时间消耗达到1700ms，针对每天上亿的数据量，这样一个处理速度，让人情何以堪啊。。。&lt;/p&gt;
&lt;p&gt;我自己也有个想法，就是找到每条记录所在点的经纬度周围的一个大概范围，比方说正方形的四个点，然后使用mysql的空间计算，使用MBR去得出点在这个矩形内的已知记录，然后进行匹配。可惜，自己没想出能计算到四个点经纬度的方法。&lt;/p&gt;
&lt;p&gt;意外的，查询到了一个关于这个计算&lt;a target="_blank" rel="nofollow" href="http://tech.idv2.com/2011/06/17/location-search/"&gt;附近地点搜索初探&lt;/a&gt;，里面使用python实现了这个想法。&lt;/p&gt;
&lt;p&gt;所以参考了一下原文中的算法，使用PHP进行了实现。&lt;/p&gt;
&lt;p&gt;实现原理也是很相似的，先算出该点周围的矩形的四个点，然后使用经纬度去直接匹配数据库中的记录。&lt;/p&gt;
&lt;div id="attachment_2068" style="width: 426px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/06/20120615-php-mysql-earth-distance-map.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/06/20120615-php-mysql-earth-distance-map.png" alt="红色部分为要求的搜索范围，绿色部分我们能间接得到的结果范围" title="20120615-php-mysql-earth-distance-map" width="416" height="330" class="size-full wp-image-2068" srcset="//fukun.org/wp-content/uploads/2012/06/20120615-php-mysql-earth-distance-map.png 416w, //fukun.org/wp-content/uploads/2012/06/20120615-php-mysql-earth-distance-map-300x238.png 300w" sizes="(max-width: 416px) 100vw, 416px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 红色部分为要求的搜索范围，绿色部分我们能间接得到的结果范围
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>PHP正则匹配字符串中的中文</title><link>https://fukun.org/archives/06132064.html</link><pubDate>Wed, 13 Jun 2012 09:23:09 +0800</pubDate><guid>https://fukun.org/archives/06132064.html</guid><description>&lt;p&gt;如果标签里面有中文、英文、数字等混排，则需要对汉字进行特殊处理，由于PCRE不支持U P L之类的perl字符串处理转义，使用16进制或者Unicode进行处理，范例如下：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$str = "之二宽阔的甘家口东#标签1#标签2 #标签3。#标签4,都发$1234 ￥xc,cvm , ￥12,dflksjf如何#标签5.x #tag6.cvxcv“";
preg_match_all('/#([a-zA-Z0-9x7f-xff]+)/', $str, $mat);
print_r($mat);
 
preg_match("/[x{00a5}x{ffe5}](d+)/u", $str, $mat);
print_r($mat);
&lt;/pre&gt;</description></item><item><title>awk如何使用自定义函数-linux-bash-awk学习笔记</title><link>https://fukun.org/archives/06122062.html</link><pubDate>Tue, 12 Jun 2012 06:46:51 +0800</pubDate><guid>https://fukun.org/archives/06122062.html</guid><description>&lt;p&gt;在awk中，是支持自定义函数的，格式如下：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;function name ( parameter, parameter, parameter, ... ) {
 statements
 return expression # the return statement and expression are optional
 }
&lt;/pre&gt;
&lt;p&gt;但是此段代码块的位置并不是在BEGIN内进行定义，而是紧随在BEGIN之后，具体格式如下：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;awk
'BEGIN{
 // do something ...
}
function name(para1, para2){
// do something ...
}
{
 // do something...
 name(a, b);
}
END{
 // do something...
}' filename
&lt;/pre&gt;</description></item><item><title>Linux下bash中关于日期函数date的格式及各种用法</title><link>https://fukun.org/archives/06112057.html</link><pubDate>Mon, 11 Jun 2012 06:34:02 +0800</pubDate><guid>https://fukun.org/archives/06112057.html</guid><description>&lt;p&gt;Linux下bash中关于日期函数date的格式及各种用法：&lt;/p&gt;</description></item><item><title>乔布斯：操作系统为什么非要带文件系统？</title><link>https://fukun.org/archives/06082053.html</link><pubDate>Fri, 08 Jun 2012 01:22:43 +0800</pubDate><guid>https://fukun.org/archives/06082053.html</guid><description>&lt;p&gt;北京时间6月7日消息，据国外媒体报道，早在2005年的D3数字大会上，苹果前首席执行官史蒂夫•乔布斯（Steve Jobs）就曾设想了后PC时代的情况，并阐述了自己的设想：操作系统能不能不带文件系统。&lt;/p&gt;
&lt;p&gt;上周苹果首席执行官蒂姆•库克（Tim Cook）在D10大会上表示，苹果将会加强产品保密。为了更好地理解这句话，可能还要回顾一下库克前任乔布斯在2003年至2010年间参加历届数字大会时发表的观点。&lt;/p&gt;
&lt;p&gt;乔布斯常开玩笑说：“苹果就像一艘穿了底、漏着水的船，我的任务就是让这艘船朝着正确的方向航行。”&lt;/p&gt;
&lt;p&gt;在2005年的D3大会上，乔布斯阐述了他所谓的后PC时代的关键因素之一：没有文件结构的操作系统。&lt;/p&gt;
&lt;p&gt;乔布斯当时指出：“在我们开发的每个用户界面中，我们发现用户掌握文件系统非常容易也非常快。那么操作系统为什么要带文件系统呢？如果有一种更好的方法来找到所需的文件不是更好吗？”&lt;/p&gt;</description></item><item><title>bash编程 奇怪的错误 脚本空行报错 数组无法正常工作</title><link>https://fukun.org/archives/06072055.html</link><pubDate>Thu, 07 Jun 2012 08:45:49 +0800</pubDate><guid>https://fukun.org/archives/06072055.html</guid><description>&lt;p&gt;在windows下用notapad++写的shell脚本，拷贝到Linux下却无法正常工作，而且一碰到空白行就会报错：./place_category.sh: line 2: $’r’: command not found&lt;/p&gt;
&lt;p&gt;这些都是由于脚本的格式不对造成的。&lt;/p&gt;
&lt;p&gt;因为在windows下，换行符是rn ,在Linux下是 n，所以在Linux下，当遇到空白行时，实际上是当作有一个命令r去执行，当然会报错了。&lt;/p&gt;
&lt;p&gt;而且我定义了一个数组，结果也无法能够当作数组形式的数据，完全还是当作字符串一样。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#!/bin/bash
filename=$1
#定义数组，学校类型的关键字。
schools="学院 校"	
array=($schools)
# echo ${array[1]}
&lt;/pre&gt;
&lt;p&gt;解决问题的办法就是在Linux下，或者windows下的cygwin也可以，运行dos2unix file.sh 命令，把shell脚本格式进行转换后即可。&lt;/p&gt;</description></item><item><title>Facebook股价跌破27美元创IPO以来最低收盘价</title><link>https://fukun.org/archives/06052046.html</link><pubDate>Tue, 05 Jun 2012 01:17:56 +0800</pubDate><guid>https://fukun.org/archives/06052046.html</guid><description>&lt;p&gt;北京时间6月5日消息,据国外媒体报道,全球最大的社交网络公司Facebook周一股价大幅下跌,报收于26.90美元,跌幅为2.96%,触及历史最低水平。自IPO上市以来,Facebook股价已经下跌了29%。&lt;/p&gt;
&lt;p&gt;Bernstein Research的分析师卡洛斯·吉尔吉纳(Carlos Kirjner)周一开始将Facebook纳入研究范围中,并给予该股卖出评级,1年的目标股价定在25美元。&lt;/p&gt;
&lt;div id="attachment_2047" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/06/201206050913-facebook-ipo-high-26.9.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/06/201206050913-facebook-ipo-high-26.9.jpg" alt="Facebook周一股价走势图" title="201206050913-facebook-ipo-high-26.9" width="550" height="202" class="size-full wp-image-2047" srcset="//fukun.org/wp-content/uploads/2012/06/201206050913-facebook-ipo-high-26.9.jpg 550w, //fukun.org/wp-content/uploads/2012/06/201206050913-facebook-ipo-high-26.9-300x110.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Facebook周一股价走势图
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>linux下top命令 结果 各参数详解</title><link>https://fukun.org/archives/06042051.html</link><pubDate>Mon, 04 Jun 2012 07:52:21 +0800</pubDate><guid>https://fukun.org/archives/06042051.html</guid><description>&lt;p&gt;top命令是Linux下常用的性能分析工具，能够实时显示系统中各个进程的资源占用状况，类似于Windows的任务管理器。下面详细介绍它的使用方法。&lt;/p&gt;
&lt;pre style="background: #000; color: #0c0;"&gt;top - 15:59:30 up 55 days, 5:05, 4 users, load average: 0.19, 0.33, 0.30
	Tasks: 134 total, 1 running, 133 sleeping, 0 stopped, 0 zombie
	Cpu(s): 2.2%us, 0.4%sy, 0.0%ni, 97.2%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
	Mem: 12292800k total, 5476308k used, 6816492k free, 1117884k buffers
	Swap: 8385920k total, 5136k used, 8380784k free, 3281700k cache

	 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
	10928 root 15 0 156m 9984 5328 S 6.0 0.1 971:34.63 php 
	15234 root 18 0 157m 13m 5272 S 1.3 0.1 0:00.04 php 
	 7664 www 15 0 420m 26m 15m S 0.7 0.2 0:00.55 httpd 
	 1 root 15 0 10348 80 48 S 0.0 0.0 1:07.21 init 
	 2 root RT -5 0 0 0 S 0.0 0.0 0:04.55 migration/0 
	 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 
	 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 
	 5 root RT -5 0 0 0 S 0.0 0.0 0:02.20 migration/1&lt;/pre&gt;
&lt;p&gt;统计信息区&lt;/p&gt;
&lt;p&gt;前五行是系统整体的统计信息。第一行是任务队列信息，同 uptime 命令的执行结果。其内容如下：&lt;/p&gt;
&lt;p&gt;15:59:30&lt;/p&gt;
&lt;p&gt;当前时间&lt;/p&gt;
&lt;p&gt;up 1:22&lt;/p&gt;
&lt;p&gt;系统运行时间，格式为时:分&lt;/p&gt;
&lt;p&gt;1 user&lt;/p&gt;
&lt;p&gt;当前登录用户数&lt;/p&gt;
&lt;p&gt;load average: 0.06, 0.60, 0.48&lt;/p&gt;
&lt;p&gt;系统负载，即任务队列的平均长度。&lt;/p&gt;
&lt;p&gt;三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。&lt;/p&gt;
&lt;p&gt;第二、三行为进程和CPU的信息。当有多个CPU时，这些内容可能会超过两行。内容如下：&lt;/p&gt;
&lt;p&gt;Tasks: 29 total&lt;/p&gt;
&lt;p&gt;进程总数&lt;/p&gt;
&lt;p&gt;1 running&lt;/p&gt;
&lt;p&gt;正在运行的进程数&lt;/p&gt;
&lt;p&gt;28 sleeping&lt;/p&gt;
&lt;p&gt;睡眠的进程数&lt;/p&gt;
&lt;p&gt;0 stopped&lt;/p&gt;
&lt;p&gt;停止的进程数&lt;/p&gt;
&lt;p&gt;0 zombie&lt;/p&gt;
&lt;p&gt;僵尸进程数&lt;/p&gt;
&lt;p&gt;Cpu(s): 0.3% us&lt;/p&gt;
&lt;p&gt;用户空间占用CPU百分比&lt;/p&gt;
&lt;p&gt;1.0% sy&lt;/p&gt;
&lt;p&gt;内核空间占用CPU百分比&lt;/p&gt;
&lt;p&gt;0.0% ni&lt;/p&gt;
&lt;p&gt;用户进程空间内改变过优先级的进程占用CPU百分比&lt;/p&gt;
&lt;p&gt;98.7% id&lt;/p&gt;
&lt;p&gt;空闲CPU百分比&lt;/p&gt;
&lt;p&gt;0.0% wa&lt;/p&gt;
&lt;p&gt;等待输入输出的CPU时间百分比&lt;/p&gt;
&lt;p&gt;0.0% hi&lt;/p&gt;
&lt;p&gt;0.0% si&lt;/p&gt;</description></item><item><title>linux bash – awk数组操作详解</title><link>https://fukun.org/archives/06012042.html</link><pubDate>Fri, 01 Jun 2012 05:39:27 +0800</pubDate><guid>https://fukun.org/archives/06012042.html</guid><description>&lt;p&gt;用awk进行文本处理，少不了就是它的数组处理。那么awk数组有那些特点，一般常见运算又会怎么样呢。我们先看下下面的一些介绍，结合例子我们会讲解下它的不同之处。在 awk 中数组叫做关联数组(associative arrays)，因为下标记可以是数也可以是串。awk 中的数组不必提前声明，也不必声明大小。数组元素用 0 或空串来初始化，这根据上下文而定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一、定义方法&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1：可以用数值作数组索引(下标)&lt;/p&gt;
&lt;pre&gt;Tarr[1]=“cheng mo”
Tarr[2]=“800927”&lt;/pre&gt;
&lt;p&gt;2：可以用字符串作数组索引(下标)&lt;/p&gt;
&lt;pre&gt;Tarr[“first”]=“cheng ”
Tarr[“last”]=”mo”
Tarr[“birth”]=”800927”
直接使用print Tarr[1]即可得到对应的值。
&lt;strong&gt;二、数组相关函数&lt;/strong&gt;
&lt;strong&gt;1.获取数组长度 length函数； print length(Tarr);&lt;/strong&gt;
&lt;strong&gt;2.输出数组内容(无序，有序输出）：&lt;/strong&gt;
&lt;strong&gt;无序输出:for(k in Tarr){print k,Tarr[k]}&lt;/strong&gt;
&lt;strong&gt;有序输出:for(k=1;k&amp;lt;=length(Tarr);k++){print k,&lt;/strong&gt;&lt;strong&gt;Tarr&lt;/strong&gt;&lt;strong&gt;[k];}//注意，数组下标从1开始。&lt;/strong&gt;
&lt;strong&gt;3.判断键值存在以及删除键值：&lt;/strong&gt;
&lt;strong&gt;键值是否存在：if( "11211" in Tarr){print "ok";}&lt;/strong&gt;
&lt;strong&gt;删除键值：delete Tarr['key'];&lt;/strong&gt;&lt;/pre&gt;</description></item><item><title>关于PHP array_multisort() 函数的理解</title><link>https://fukun.org/archives/05282039.html</link><pubDate>Mon, 28 May 2012 09:25:57 +0800</pubDate><guid>https://fukun.org/archives/05282039.html</guid><description>&lt;p&gt;参考自：&lt;a href="http://hi.baidu.com/ucolo/blog/item/356263a894169eec1e17a20d.html" target="nofollow"&gt;&lt;a href="http://hi.baidu.com/ucolo/blog/item/356263a894169eec1e17a20d.html"&gt;http://hi.baidu.com/ucolo/blog/item/356263a894169eec1e17a20d.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 宋体; font-size: x-small;"&gt;今天研究了一下php的array_multisort，理解了之后发现他很强大，而且也不复杂。（手册上关于这个函数的讲解看得很费力）&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;手册讲解：array_multisort() 函数对多个数组或多维数组进行排序。&lt;/p&gt;
&lt;p&gt;参数中的数组被当成一个表的列并以行来进行排序 – 这类似 SQL 的 ORDER BY 子句的功能。&lt;span style="color: #ff0000;"&gt;第一个数组是要排序的主要数组。数组中的行（值）比较为相同的话，就会按照下一个输入数组中相应值的大小进行排序，依此类推。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 宋体; font-size: x-small;"&gt;一、先看最简单的情况。有两个数组：&lt;/span&gt;&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$arr1 = array(1,9,5);
$arr2 = array(6,2,4);

array_multisort($arr1,$arr2);

print_r($arr1); // 得到的顺序是1,5,9
print_r($arr2); // 得到的顺序是6,4,2
&lt;/pre&gt;
&lt;p&gt;&lt;span style="font-family: 宋体; font-size: x-small;"&gt;我估计两个数组的值自始至终都是对应着的：1对应6，9对应2，5对应4。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>给定的经纬度坐标之间的范围/距离计算 php</title><link>https://fukun.org/archives/05232033.html</link><pubDate>Tue, 22 May 2012 21:13:02 +0800</pubDate><guid>https://fukun.org/archives/05232033.html</guid><description>&lt;p&gt;用PHP实现 给定的经纬度坐标之间的范围/距离的计算-函数：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;/**
*求两个已知经纬度之间的距离,单位为米
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离，单位米
**/
function getdistance($lng1,$lat1,$lng2,$lat2)//根据经纬度计算距离
{
	//将角度转为狐度 
	$radLat1=deg2rad($lat1);
	$radLat2=deg2rad($lat2);
	$radLng1=deg2rad($lng1);
	$radLng2=deg2rad($lng2);
	$a=$radLat1-$radLat2;//两纬度之差,纬度&amp;lt;90
	$b=$radLng1-$radLng2;//两经度之差纬度&amp;lt;180
	$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137*1000;
	return $s;
}

//测试，返回结果 : 759.467618902
echo getdistance(116.4558029, 39.9167328, 116.460197, 39.910801);
&lt;/pre&gt;</description></item><item><title>mysql 命令行 查看mysql数据库大小、表大小、数据大小、索引大小</title><link>https://fukun.org/archives/05222029.html</link><pubDate>Tue, 22 May 2012 07:38:01 +0800</pubDate><guid>https://fukun.org/archives/05222029.html</guid><description>&lt;p&gt;如何使用mysql 命令行 查看mysql数据库大小、表大小、数据大小、索引大小：&lt;/p&gt;
&lt;pre&gt;select * from information_schema.TABLES 
 where information_schema.TABLES.TABLE_SCHEMA='databasename'
 and information_schema.TABLES.TABLE_NAME='tablename'G
&lt;/pre&gt;
&lt;p&gt;返回结果:&lt;/p&gt;
&lt;pre&gt;*************************** 1. row ***************************
 TABLE_CATALOG: def
 TABLE_SCHEMA: databasename
 TABLE_NAME: tablename
 TABLE_TYPE: BASE TABLE
 ENGINE: MyISAM
 VERSION: 10
 ROW_FORMAT: Dynamic
 TABLE_ROWS: 6422930
 AVG_ROW_LENGTH: 213
 DATA_LENGTH: 1370884700
MAX_DATA_LENGTH: 281474976710655
 INDEX_LENGTH: 412930048
 DATA_FREE: 0
 AUTO_INCREMENT: 6422931
 CREATE_TIME: 2012-05-11 05:00:02
 UPDATE_TIME: 2012-05-22 15:12:06
 CHECK_TIME: 2012-05-11 09:58:52
TABLE_COLLATION: utf8_general_ci
 CHECKSUM: NULL
 CREATE_OPTIONS: 
 TABLE_COMMENT: 'table comment'
1 row in set (0.00 sec)
&lt;/pre&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;p&gt;information_schema.TABLES.TABLE_SCHEMA = ‘databasename’ and information_schema.TABLES.TABLE_NAME = ‘tablename’&lt;/p&gt;
&lt;p&gt;信息存储在information_schema.TABLES这个表中，TABLE_SCHEMA 对应数据库名，TABLE_NAME 对应表名。&lt;/p&gt;
&lt;p&gt;# TABLE_ROWS 代表拥有的数据行数。&lt;/p&gt;
&lt;p&gt;# 总大小 = DATA_LENGTH(数据大小) + INDEX_LENGTH(索引大小)&lt;/p&gt;
&lt;p&gt;结果以字节为单位，除1024为K，除1048576(=1024*1024)为M。&lt;/p&gt;</description></item><item><title>linux/unix下shell 编程之 2&gt;&amp;1 是什么意思 [转]</title><link>https://fukun.org/archives/05162025.html</link><pubDate>Wed, 16 May 2012 07:03:47 +0800</pubDate><guid>https://fukun.org/archives/05162025.html</guid><description>&lt;p&gt;转自： &lt;a href="http://www.ningoo.net/html/2007/shell_scripts_stderr_stdout.html" rel="nofollow" target="_blank"&gt;NinGoo的博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;经常可以在一些脚本，尤其是在crontab调用时发现如下形式的命令调用&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;/tmp/test.sh &amp;gt; /tmp/test.log 2&amp;gt;&amp;1
&lt;/pre&gt;
&lt;p&gt;前半部分/tmp/test.sh &amp;gt; /tmp/test.log很容易理解，那么后面的2&amp;gt;&amp;amp;1是怎么回事呢？&lt;/p&gt;
&lt;p&gt;要解释这个问题，还是得提到文件重定向。我们知道&amp;gt;和&amp;lt;是文件重定向符。那么1和2是什么？**在shell中，每个进程都和三个系统文件相关联：标准输入stdin，标准输出stdout和标准错误stderr，三个系统文件的文件描述符分别为0，1和2。**所以这里2&amp;gt;&amp;amp;1的意思就是将标准错误也输出到标准输出当中。&lt;/p&gt;
&lt;p&gt;下面通过一个例子来展示2&amp;gt;&amp;amp;1有什么作用：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;$ cat test.sh
t
date
&lt;/pre&gt;
&lt;p&gt;test.sh中包含两个命令，其中t是一个不存在的命令，执行会报错，默认情况下，错误会输出到stderr。date则能正确执行，并且输出时间信息，默认输出到stdout&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;./test.sh &amp;gt; test1.log
./test.sh: line 1: t: command not found
$ cat test1.log
Tue Oct 9 20:51:50 CST 2007
&lt;/pre&gt;
&lt;p&gt;可以看到，date的执行结果被重定向到log文件中了，而t无法执行的错误则只打印在屏幕上。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;$ ./test.sh &amp;gt; test2.log 2&amp;gt;&amp;1
$ cat test2.log
./test.sh: line 1: t: command not found
Tue Oct 9 20:53:44 CST 2007
&lt;/pre&gt;
&lt;p&gt;这次，stderr和stdout的内容都被重定向到log文件中了。&lt;/p&gt;
&lt;p&gt;实际上， &amp;gt; 就相当于 1&amp;gt; 也就是重定向标准输出，不包括标准错误。通过2&amp;gt;&amp;amp;1，就将标准错误重定向到标准输出了，那么再使用&amp;gt;重定向就会将标准输出和标准错误信息一同重定向了。如果只想重定向标准错误到文件中，则可以使用2&amp;gt; file。&lt;/p&gt;</description></item><item><title>百度地图各省份轮廓上色-包括台湾</title><link>https://fukun.org/archives/05112020.html</link><pubDate>Fri, 11 May 2012 07:33:48 +0800</pubDate><guid>https://fukun.org/archives/05112020.html</guid><description>&lt;div id="attachment_2022" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/05/20120428-baidu-map-bmap-shengfen-color-lunkuo.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/05/20120428-baidu-map-bmap-shengfen-color-lunkuo-600x284.jpg" alt="百度地图各省份轮廓-上不同颜色-包括台湾" title="20120428-baidu-map-bmap-shengfen-color-lunkuo" width="600" height="284" class="size-large wp-image-2022" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 百度地图各省份轮廓-上不同颜色-包括台湾
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>使用 cURL 获取站点的各类响应时间 – dns解析时间,响应时间,传输时间</title><link>https://fukun.org/archives/05102012.html</link><pubDate>Thu, 10 May 2012 03:11:28 +0800</pubDate><guid>https://fukun.org/archives/05102012.html</guid><description>&lt;p&gt;使用 cURL 获取站点的各类响应时间 – dns解析时间,响应时间,传输时间等：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} digdeeply.org
&lt;/pre&gt;
&lt;p&gt;这是一个本人博客站点执行 curl 命令的情况。输出通常是 HTML 代码，通过 -o 参数发送到 /dev/null。-s 参数去掉所有状态信息。-w 参数让 curl 输出的计时器的状态信息。&lt;/p&gt;
&lt;div id="attachment_2016" style="width: 383px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/05/20120510-dns-response-waiting-curl-php-get.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/05/20120510-dns-response-waiting-curl-php-get.jpg" alt="一次http请求中的各个时间段-dns解析,等待服务器响应,获取内容等" title="20120510-dns-response-waiting-curl-php-get" width="373" height="187" class="size-full wp-image-2016" srcset="//fukun.org/wp-content/uploads/2012/05/20120510-dns-response-waiting-curl-php-get.jpg 373w, //fukun.org/wp-content/uploads/2012/05/20120510-dns-response-waiting-curl-php-get-300x150.jpg 300w" sizes="(max-width: 373px) 100vw, 373px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 一次http请求中的各个时间段-dns解析,等待服务器响应,获取内容等
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;下边对-w参数做个详细的解释，由我(DigDeeply)翻译。有不对的地方请大家指出。(英文原文：http://curl.haxx.se/docs/manpage.html)&lt;/p&gt;</description></item><item><title>美联邦陪审团裁定Android侵犯甲骨文Java专利</title><link>https://fukun.org/archives/05082006.html</link><pubDate>Tue, 08 May 2012 01:19:03 +0800</pubDate><guid>https://fukun.org/archives/05082006.html</guid><description>&lt;div id="attachment_2007" style="width: 246px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/05/201205080917-google-android-vs-oracle-java.jpg"&gt;&lt;img class="size-full wp-image-2007" title="201205080917-google-android-vs-oracle-java" src="//fukun.org/wp-content/uploads/2012/05/201205080917-google-android-vs-oracle-java.jpg" alt="美联邦陪审团裁定Android侵犯甲骨文Java专利" width="236" height="214" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 美联邦陪审团裁定Android侵犯甲骨文Java专利
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;北京时间5月8日消息，据外国媒体报道，一个由12名成员组织的美国联邦陪审团周一作出裁决称，谷歌在研发Android操作系统时侵犯了甲骨文的技术专利，目前Android已经在3亿多个移动设备运营。&lt;/p&gt;
&lt;p&gt;不过，该陪审团在谷歌是否“公平使用”甲骨文的知识产权方面仍未能够达成一致的裁决方案。&lt;/p&gt;
&lt;p&gt;上述裁决阻止了甲骨文对所有侵权诉讼索赔的要求，但据美国地方法官威廉·阿尔苏普（William Alsup）声称，陪审团还是认为，Android的部分技术侵犯了甲骨文的专利。甲骨文一直要求谷歌为此赔偿10亿美元。&lt;/p&gt;
&lt;p&gt;谷歌的代理律师罗伯特·凡·奈斯特要求阿尔苏普宣布上述裁决为无效审判，该律师认为，到底是否侵权与是否公平使用有着直接的关系。阿尔苏普声称他将考虑谷歌的这一请求，并宣布案件开始进入专利审查期。&lt;/p&gt;
&lt;p&gt;上述决定已经进入了为期八周的知识产权审理阶段，此审理期从4月有16日开始，下一阶段将转移到甲骨文指控的专利侵权事务方面。第三阶段即赔偿阶段，将在前两阶段结束后开始。&lt;/p&gt;</description></item><item><title>JavaScript面向对象15分钟教程 – OO JS in 15mins or Less</title><link>https://fukun.org/archives/05072000.html</link><pubDate>Mon, 07 May 2012 15:19:14 +0800</pubDate><guid>https://fukun.org/archives/05072000.html</guid><description>&lt;p&gt;本指南可以很快让你学会写优美的面向对象JavaScript代码，我保证！学会写简洁的JavaScript代码对一个开发者的发展很重要，随着像Node.js这类技术的出现，你现在可以在服务器端写JavaScript代码了，你甚至可以用JavaScript来查询像MongoDB这样的持久性数据存储。&lt;/p&gt;
&lt;p&gt;现在开始写面向对象的JS（OO JS），如果你有什么问题或我遗漏了什么，在下面评论出告诉我。&lt;/p&gt;
&lt;h5 id="literal-notation"&gt;&lt;span&gt;Literal Notation&lt;/span&gt;&lt;/h5&gt;
&lt;h5 id="literal-notation只是在javascript中创建对象的一种方法是的方法不止这一种当你打算创建一个对象实例的时候literal-notation是首选的方法"&gt;&lt;span style="font-weight: normal;"&gt;Literal Notation只是在JavaScript中创建对象的一种方法，是的，方法不止这一种。当你打算创建一个对象实例的时候Literal Notation是首选的方法。&lt;/span&gt;&lt;/h5&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;var bill = {}; &lt;/pre&gt;
&lt;p&gt;上面的代码没太大用处，仅仅只是创建了一个空对象。让我们动态的添加一些属性和方法到这个对象。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;bill.name = "Bill E Goat";
bill.sound = function() {
	console.log( 'bahhh!' );
};&lt;/pre&gt;
&lt;p&gt;这里我们添加了“name”属性并赋值为“Bill E Goat”。我们不一定要在前面创建空对象，还可以只用一步完成上面 所有的事。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;var bill = {
 name: "Bill E Goat",
 sound: function() {
 console.log( 'bahhh!' );
 }
};&lt;/pre&gt;
&lt;p&gt;很简洁漂亮是不是？访问属性和方法也一样很简单。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;bill.name; // "Bill E Goat"
bill.sound(); // "bahhh"&lt;/pre&gt;</description></item><item><title>python def和lambda的相同与不同</title><link>https://fukun.org/archives/05061994.html</link><pubDate>Sun, 06 May 2012 02:28:32 +0800</pubDate><guid>https://fukun.org/archives/05061994.html</guid><description>&lt;p&gt;原文：http://www.cnpythoner.com/post/140.html&lt;/p&gt;
&lt;p&gt;python def和python lambda 这2个有相似点也有不同点，今天给大家分享下自己的心得吧。&lt;/p&gt;
&lt;p&gt;先说说2个的相似点： 这两个很重要的相似点就是都可以定义一些固定的方法或者是流程，供给程序来调用，比如我们要定义一个变量加2的方法。&lt;/p&gt;
&lt;p&gt;首先看python def吧。&lt;/p&gt;
&lt;pre class="brush: python; title: Example; notranslate" title="Example"&gt;def info(x):
 return x + 2

a = info(1)
print a
&lt;/pre&gt;
&lt;p&gt;再看下python lambda&lt;/p&gt;
&lt;pre class="brush: python; title: Example; notranslate" title="Example"&gt;f = lambda x : x+2
a = f(1) 
print a 
&lt;/pre&gt;
&lt;p&gt;上面2种方式输出的结果都是3，如果你要完成一些固定的流程的话，上面两种你都可以任意选择。&lt;/p&gt;</description></item><item><title>python标准库和第3方库的介绍</title><link>https://fukun.org/archives/05051997.html</link><pubDate>Sat, 05 May 2012 02:48:38 +0800</pubDate><guid>https://fukun.org/archives/05051997.html</guid><description>&lt;p&gt;下面是python标准库和第3方库的介绍：&lt;/p&gt;
&lt;p&gt;　Tkinter———— Python默认的图形界面接口。&lt;/p&gt;
&lt;p&gt;　　Tkinter是一个和Tk接口的模块，Tkinter库提供了对Tk API的接口，它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言，用于简化shell下复杂程序的开发，Tk工具包是和Tcl一起开发的，目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件，如一个按钮、一个滚动条等。通过Tk提供的这些小部件，我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台，在各种平台下都能使用。&lt;/p&gt;
&lt;p&gt;　　Python Imaging Library(PIL)————它提供强大的图形处理的能力，并提供广泛的图形文件格式支持，该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理，如图形的放大、缩小和旋转等。是用户进行图象处理的强有力工具。&lt;/p&gt;
&lt;p&gt;　　Pmw(Python megawidgets)它是超级GUI组件集————一个利用Tkinter模块构建的高级GUI组件，每个Pmw都合并了一个或多个Tkinter组件，以实现更有用和更复杂的功能。&lt;/p&gt;
&lt;p&gt;　　PyXML———— 用Python解析和处理XML文档的工具包，包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容：&lt;/p&gt;
&lt;p&gt;　　xmlproc: 一个符合规范的XML解析器。&lt;/p&gt;
&lt;p&gt;　　Expat: 一个快速的，非验证的XML解析器。 还有其他&lt;/p&gt;
&lt;p&gt;　　和他同级别的还有 PyHtml PySGML&lt;/p&gt;
&lt;p&gt;　　PyGame———— 用于多媒体开发和游戏软件开发的模块。&lt;/p&gt;
&lt;p&gt;　　PyOpenGL———— 模块封装了“OpenGL应用程序编程接口”，通过该模块python程序员可在程序中集成2D和3D的图形。&lt;/p&gt;</description></item><item><title>解决vim、gvim在windows下的中文乱码问题(菜单乱码、右键菜单乱码)</title><link>https://fukun.org/archives/05021988.html</link><pubDate>Wed, 02 May 2012 07:04:00 +0800</pubDate><guid>https://fukun.org/archives/05021988.html</guid><description>&lt;p&gt;在windows下vim的中文字体显示并不好，所以我们需要调整字体显示编码为utf-8，只有这样才能使用美观的中文。这时候可能出现很多中文乱码。&lt;/p&gt;
&lt;p&gt;如：文件显示乱码、菜单乱码、右键菜单乱码、conlse输出乱码、文件关联右键菜单乱码等等。&lt;/p&gt;
&lt;p&gt;以下_vimrc配置可以解决以上问题。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;if has(“gui_running”)
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1

if has(“win32″)
set fileencoding=chinese
else
set fileencoding=utf-8
endif

let &amp;termencoding=&amp;encoding

” 解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

” 解决consle输出乱码
language messages zh_CN.utf-8
endif
&lt;/pre&gt;</description></item><item><title>javascript js 十进制转十六进制 进制变换</title><link>https://fukun.org/archives/04281985.html</link><pubDate>Sat, 28 Apr 2012 06:59:39 +0800</pubDate><guid>https://fukun.org/archives/04281985.html</guid><description>&lt;p&gt;今天再做一个中国地图的可视化展现，需要对每个省份的轮廓进行染不同颜色，以此来区分各个省份。&lt;/p&gt;
&lt;p&gt;用的是百度地图，所以需要用JS来生成Polygon多边形，然后用颜色填充，现在需要随机生成颜色，所以需要随机生成3个0-16的16进制数，拼接起来，作为一个颜色的RGB值。&lt;/p&gt;
&lt;p&gt;不多说，直接上简单明了的JS代码，如何随机生成0-16的数，然后把十进制的值转换为十六进制。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;var r = parseInt(Math.random()*16);
var g = parseInt(Math.random()*16);
var b = parseInt(Math.random()*16);
//转换为十六进制,使用 int.toString(16)即可.
//相应的，还可以使用toString(10) , toString(8), toString(2)来转化为十进制，八进制，二进制等。
r = r.toString(16);
g = g.toString(16);
b = b.toString(16);
//拼接成颜色的RGB值
var color = '#'+r+g+b;
&lt;/pre&gt;</description></item><item><title>mysql mysqldump 导入导出大文件 – MySQL server has gone away</title><link>https://fukun.org/archives/04261980.html</link><pubDate>Thu, 26 Apr 2012 02:34:54 +0800</pubDate><guid>https://fukun.org/archives/04261980.html</guid><description>&lt;p&gt;在本机搭建测试环境时，使用了mysqldump导出了一个数据库文件，将近500M，即使是压缩后也有100M左右，在通过mysqldump导入时，发生了错误： “MySQL server has gone away.”。&lt;/p&gt;
&lt;p&gt;个人猜测，发生 MySQL server has gone away 问题的原因很可能就是数据文件过大，导致超时。&lt;/p&gt;
&lt;p&gt;所以对mysql进行修改：修改my.ini(在lnix/unix下是my.cnf)文件，加大超时参数&lt;/p&gt;
&lt;pre&gt;wait_timeout=2888888
&lt;/pre&gt;
&lt;p&gt;如果没有此参数，直接在my.ini/my.cnf文件末尾一行添加上即可。&lt;/p&gt;
&lt;p&gt;重启mysql。&lt;/p&gt;
&lt;p&gt;最后再次执行导入语句&lt;/p&gt;
&lt;pre&gt;mysql -uroot -p123456 test_data &amp;lt; D:Xampsqldatatest.sql
&lt;/pre&gt;
&lt;p&gt;注：在使用mysqldump时要注意，客户端mysqldump工具的版本要高于等于服务器的版本。&lt;/p&gt;</description></item><item><title>IE7/IE8下javascript的时间函数Date()不兼容讲解–来自amcharts应用中的问题</title><link>https://fukun.org/archives/04251973.html</link><pubDate>Wed, 25 Apr 2012 09:04:45 +0800</pubDate><guid>https://fukun.org/archives/04251973.html</guid><description>&lt;p&gt;最近在使用ammap和amcharts做一些数据可视化展现的工作，amcharts图表功能真的很强大，可自定义的属性很多。这是其&lt;a href="http://www.amcharts.com/" rel="nofollow" target="_blank"&gt;官网&lt;/a&gt;和&lt;a href="http://www.amcharts.com/docs/" rel="nofollow" target="_blank"&gt;文档&lt;/a&gt;链接。可以简单看看文档，会发现有很多属性，可以对图表中的每块表示数据的区域绑定事件，可以是一个url，也可以是一个js,怎么样，只有这两项，就绝对能满足很多扩展的需要了吧。&lt;/p&gt;
&lt;p&gt;这是一个我做的例子，使用了ammap和amcharts，左边中国地图，不同省份的数据不一样，颜色代表不同等级的数据；右边是amcharts做的柱状图和折线图。&lt;/p&gt;
&lt;div id="attachment_1974" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/04/201204251628-ammap-amcharts-view-app.jpg"&gt;&lt;img class="size-large wp-image-1974" title="201204251628-ammap-amcharts-view-app" src="//fukun.org/wp-content/uploads/2012/04/201204251628-ammap-amcharts-view-app-600x291.jpg" alt="ammap和amcharts的案例--好用可扩展的javascript图表插件" width="600" height="291" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 ammap和amcharts的案例--好用可扩展的javascript图表插件
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;问题就在使用图表的过程中了，主要是右下角的那个折线图，在chrome、firefox、opera和IE9下均看过了，没有问题，可是到别人机器上，用的IE8，发现右下角的折线图出问题了。于是开始了JS的调试之旅，使用IE9的开发人员工具，可以很方便的调到IE7和IE8模式，之前一直都是firefox的firebug，现在一直都在用chrome，今天用了用IE9的调试工具，发现也挺好用的，主要是它有一个选项，可以设置为-始终从服务器中刷新，这样，每次IE运行获得的JS和CSS文件等，都不会是缓存中来的，调试起来很方便，不用总去清缓存。见下图：&lt;/p&gt;</description></item><item><title>最高法界定网络侵权认定:避风港原则不能滥用;网盘恐受冲击</title><link>https://fukun.org/archives/04231967.html</link><pubDate>Mon, 23 Apr 2012 01:53:25 +0800</pubDate><guid>https://fukun.org/archives/04231967.html</guid><description>&lt;p&gt;最高人民法院昨天全文公布了《关于审理侵犯信息网络传播权民事纠纷案件适用法律若干问题的规定（征求意见稿）》，共20条，意见稿对网络用户、网络服务提供者侵犯著作权行为，尤其是对侵权认定情形做出详细规定。根据意见稿，仅提供信息存储空间、搜索、链接、点对点技术等网络服务不构成侵权，但明知或者应知网络用户侵犯他人信息网络传播权的具体事实，仍提供服务或者不采取合理措施的将构成侵权。征求意见截止期为6月1日。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DD点评：这下子，网盘恐怕也要遭受点冲击了。还有就是，大家没有免费的电影看了。。。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;侵权行为认定&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;征求意见稿对互联网上哪些行为构成侵权做出了具体规定，意见稿第三条指出：“网络用户、网络服务提供者未经许可，通过信息网络提供他人享有权利的作品、表演、录音录像制品，人民法院应当判令其承担侵犯信息网络传播权的民事责任。”“通过上传到网络服务器或者以其他方式，将作品、表演、录音录像制品置于向公众开放的信息网络中，使公众可以以下载、浏览或者其他方式获得的，人民法院应当认定其构成作品、表演或者录音录像制品的提供行为。”&lt;/p&gt;
&lt;p&gt;意见稿重点对网络服务提供者的侵权行为做出界定，意见稿规定：判断网络服务提供者是否具有过错，一般应当以其是否明知或者应知网络用户侵犯他人信息网络传播权的具体事实为标准。&lt;/p&gt;
&lt;p&gt;其中意见稿第六条规定，“网络服务提供者主张其仅提供信息存储空间、搜索、链接、点对点技术等网络服务，但有证据证明其与侵权作品、表演、录音录像制品的提供者，通过分工合作等方式共同实施提供行为，符合共同侵权行为要件的，人民法院应当判令其承担连带责任。”此外第七条也提出：“网络服务提供者明知或者应知其网络用户侵害他人信息网络传播权，人民法院应当认定其构成帮助侵权行为。”&lt;/p&gt;
&lt;p&gt;根据征求意见稿的规定，以下行为应当认定构成“提供”行为：通过上传到网络服务器或者以其他方式，置于向公众开放的信息网络中，使公众可以以下载、浏览或者其他方式获得的；网络服务提供者具有提供作品、表演、录音录像制品的外观的，可以认定为实施了提供行为，但自动接入、自动传输、信息存储空间、搜索、链接、点对点技术等服务的除外；网络服务提供者为提供搜索服务，按照一定的技术安排生成作品、表演、录音录像制品的网页快照、缩略图等并向公众提供的，应当认定其构成提供行为。但允许合理使用。&lt;/p&gt;</description></item><item><title>中文分词和搜索引擎</title><link>https://fukun.org/archives/04211970.html</link><pubDate>Sat, 21 Apr 2012 09:51:59 +0800</pubDate><guid>https://fukun.org/archives/04211970.html</guid><description>&lt;p&gt;&lt;strong&gt;中文分词的算法&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;中文分词技术的研究，已经有几十年的历史了，在20世纪80年代，我国就有人开始研究如何用计算机来自动分词。如何让机器去识别语言中最小的语意单位，不是一件很容易的事情。&lt;/p&gt;
&lt;p&gt;如何进行分词？对于程序员来说，最容易想到的办法是，用一个大词典，把所有的词都存入词典中，扫描输入的文本，查找所有可能的词，然后看哪个词可以做为输出。例如：&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #008000;"&gt;输入文本: 我是学生&lt;br /&gt; 词: 我/是/学生&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;其实这样做了以后，可以解决60%的问题。总结起来，分词的算法分为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;基于字符串匹配的分词方法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基于理解的分词方法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基于统计的分词方法&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>图解HTTPS</title><link>https://fukun.org/archives/04171963.html</link><pubDate>Tue, 17 Apr 2012 02:23:01 +0800</pubDate><guid>https://fukun.org/archives/04171963.html</guid><description>&lt;h3 id="https简介"&gt;HTTPS简介&lt;/h3&gt;
&lt;p&gt;HTTPS其实是有两部分组成：HTTP + SSL / TLS，也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密，所以传输的数据都是加密后的数据。具体是如何进行加密，解密，验证的，且看下图。&lt;/p&gt;
&lt;div id="attachment_1964" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/04/20120417-ssl-443-how-https.png"&gt;&lt;img class="size-large wp-image-1964" title="20120417-ssl-443-how-https" src="//fukun.org/wp-content/uploads/2012/04/20120417-ssl-443-how-https-600x518.png" alt="图解HTTPS - 如何进行加密，解密，验证" width="600" height="518" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 图解HTTPS - 如何进行加密，解密，验证
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>美杂志1935年预言将出现“iPad”</title><link>https://fukun.org/archives/04151960.html</link><pubDate>Sun, 15 Apr 2012 01:55:07 +0800</pubDate><guid>https://fukun.org/archives/04151960.html</guid><description>&lt;p&gt;苹果平板电脑iPad不仅是科技界的关注焦点，同时也成为很多技术迷的宠儿。这款平板电脑能够让用户获得普通电脑无法比拟的体验。令苹果迷没有想到的是，早在1935年，美国杂志《每日科学和机械》就预言未来将出现iPad这样的平板电脑。根据当时的预言，未来将出现一种可以让用户浏览几乎数量无限的文学作品的装置，无需准备书架。&lt;/p&gt;
&lt;div id="attachment_1961" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/04/2012-04-15-american-ipad-pre.jpg"&gt;&lt;img class="size-full wp-image-1961" title="2012-04-15-american-ipad-pre" src="//fukun.org/wp-content/uploads/2012/04/2012-04-15-american-ipad-pre.jpg" alt="美杂志1935年预言将出现“iPad”-设计图（腾讯科技配图）" width="550" height="438" srcset="//fukun.org/wp-content/uploads/2012/04/2012-04-15-american-ipad-pre.jpg 550w, //fukun.org/wp-content/uploads/2012/04/2012-04-15-american-ipad-pre-300x239.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 美杂志1935年预言将出现“iPad”-设计图（腾讯科技配图）
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>神州泰岳续签中移动飞信合同 金额上限6亿元</title><link>https://fukun.org/archives/04131953.html</link><pubDate>Fri, 13 Apr 2012 01:57:58 +0800</pubDate><guid>https://fukun.org/archives/04131953.html</guid><description>&lt;p&gt;13日，神州泰岳发布重大合同公告称，与中移动广州公司签订了新的飞信技术实施与支撑合同。&lt;/p&gt;
&lt;p&gt;与此前传闻的一致，收入结算方式由分成变为按人头结算，合同期限也由之前的三年缩减为一年，但公司所承接的飞信业务范围也有所增加。另外，公告显示这份合同服务价款的金额上限被定为6亿元，与公司去年6.1亿元的飞信业务收入基本持平。&lt;/p&gt;
&lt;p&gt;**　　飞信业务收入连续3年增长**&lt;/p&gt;
&lt;p&gt;神州泰岳在去年10月就到期的飞信合同，日前终于得以与中国移动续签。13日公司发布重大合同公告，称与中国移动围绕着飞信业务的主要工作内容签署了《飞信系统技术实施与支撑合同》。&lt;/p&gt;
&lt;p&gt;合同约定，将由神州泰岳继续提供飞信相关系统开发、技术实施与支撑服务工作，合同履行期限自2011年11月1日起至2012年10月31日止。神州泰岳自2007年起设立全资子公司独家为中国移动飞信业务提供运维支撑外报服务，飞信业务也是神州泰岳主业之一，差不多贡献了公司营收的半壁江山，最近三年这块收入分别达到4.4亿元、4.9亿元、6.1亿元，分别占到了总营收的61%、58%和52%。2011年中国移动对旗下业务架构进行调整，飞信业务移交广东省分公司负责，种种变动下导致公司续签事宜迟迟未有结果。&lt;/p&gt;</description></item><item><title>雅虎CEO披露重组计划：公司将重组为三个部门</title><link>https://fukun.org/archives/04111950.html</link><pubDate>Wed, 11 Apr 2012 01:13:42 +0800</pubDate><guid>https://fukun.org/archives/04111950.html</guid><description>&lt;p&gt;北京时间4月11日消息，据国外媒体报道，雅虎首席执行官斯科特·汤普森（Scott Thompson）在给职员的内部备忘录中宣布，将5月1日起将公司重组为三大核心业务部门。&lt;/p&gt;
&lt;p&gt;曾经占主导地位的互联网媒体和搜索巨头雅虎，现在的发展在谷歌和Facebook面前黯然失色。上周该公司宣布将裁员2000人，为重振业务实施大规模重组。汤普森称：“很清楚，我们最重要的任务是要在核心业务上取得胜利，这才能使我们有权利追寻新的增长机会。”&lt;/p&gt;
&lt;p&gt;雅虎设立的三大新部门分别为，罗斯·莱文索恩（Ross Levinsohn）领导的关注媒体内容、如Flickr、搜索及电子邮件和电子商务等“联系”的消费部门；新设立的地区部门负责处理与广告商的业务；而技术部门将负责雅虎的基础架构和平台。&lt;/p&gt;
&lt;p&gt;汤普森称：“未来几天或几周里，业务部门领导将谈论他们对部门发展制定的计划。最终，只有我们的客户才能决定我们在市场上的输赢。”正如所预料的一样，新的结构抛弃了集中产品部门，而负责该部门的布莱克·欧文（Blake Irving），将在未来几周内辞职，预计不会有人取代他。&lt;/p&gt;</description></item><item><title>jquery 滑动 回到顶部代码</title><link>https://fukun.org/archives/04061955.html</link><pubDate>Fri, 06 Apr 2012 06:02:43 +0800</pubDate><guid>https://fukun.org/archives/04061955.html</guid><description>&lt;p&gt;jQuery实现滑动回到顶部效果：&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;$('html, body').animate({scrollTop: 0},500);
&lt;/pre&gt;</description></item><item><title>jQuery数组处理完全详解($.each,$.grep,$.map,$.merge,$.inArray,$.unique,$.makeArray)</title><link>https://fukun.org/archives/04041946.html</link><pubDate>Wed, 04 Apr 2012 15:01:28 +0800</pubDate><guid>https://fukun.org/archives/04041946.html</guid><description>&lt;p&gt;jQuery的数组处理、便捷、功能齐全。最近的项目中用到的比较多,深感实用,一步到位的封装了很多原生JavaScript数组不能企及的功能。最近时间紧迫,今天抽了些时间回过头来看jQuery中文文档中对数组的介绍,顺便对jQuery数组做个总结，温故而知新。&lt;/p&gt;
&lt;p&gt;强烈建议你打开DEMO演示后再看下面的详解：http://mrthink.net/demo/ijq20101125.htm&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. $.each(array, [callback]) 遍历[常用]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;解释: 不同于例遍jQuery对象的$().each()方法,此方法可用于例遍任何对象。回调函数拥有两个参数：第一个为对象的成员或数组的索引, 第二个为对应变量或内容. 如果需要退出each循环可使回调函数返回false, 其它返回值将被忽略。&lt;/p&gt;
&lt;p&gt;each遍历,相信都不陌生,在平常的事件处理中,是for循环的变体,但比for循环强大。在数组中,它可以轻松的攻取数组索引及对应的值。例:&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; //本文所用到的数组, 下同
$.each(_mozi,function(key,val){
 //回调函数有两个参数,第一个是元素索引,第二个为当前值
 alert('_mozi数组中 ,索引 : '+key+' 对应的值为: '+val);
});
&lt;/pre&gt;
&lt;p&gt;相对于原生的for..in,each更强壮一点。for..in也可以遍历数组,并返回对应索引,但值是需要通过arrName[key]来获取。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. $.grep(array, callback, [invert])过滤数组[常用]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;解释: 使用过滤函数过滤数组元素.此函数至少传递两个参数(第三个参数为true或false,对过滤函数返回值取反,个人觉得用处不大): 待过滤数组和过滤函数. 过滤函数必须返回true以保留元素或 false 以删除元素. 另外,过滤函数还可以是可设置为一个字条串。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;$.grep(_mozi,function(val,key){
 //过滤函数有两个参数,第一个为当前元素,第二个为元素索引
 if(val=='墨子'){
 alert('数组值为 墨子 的下标是: '+key);
 }
});

var _moziGt1=$.grep(_mozi,function(val,key){
 return key&amp;gt;1;
});
alert('_mozi数组中索引值大于1的元素为: '+_moziGt1);

var _moziLt1=$.grep(_mozi,function(val,key){
 return key&amp;gt;1;
},true);
//此处传入了第三个可靠参数,对过滤函数中的返回值取反
alert('_mozi数组中索引值小于等于1的元素为: '+_moziLt1);
&lt;/pre&gt;</description></item><item><title>将 DIV 放置于 Flash之上 – ammap实战</title><link>https://fukun.org/archives/03301938.html</link><pubDate>Fri, 30 Mar 2012 08:09:02 +0800</pubDate><guid>https://fukun.org/archives/03301938.html</guid><description>&lt;p&gt;做一个基于中国地图的数据展示。查找了一些资料，打算使用ammap，研究一番之后，终于明白一些。&lt;/p&gt;
&lt;p&gt;通过设定数据文件ammap_data.xml中的area标签的url属性，可以设置为一个javascript:functionname();来调用一个JS函数。这下容易多了，可以通过JS去获得数据，添加到一个层，然后显示出来即可。&lt;/p&gt;
&lt;p&gt;但是实践的时候又遇到一个问题，不管怎么设置层的CSS值，包括position，z-index,left,top 啊等等，层总是被flash给遮挡住，。查了点资料，原来flash是有一个属性设置的，可以设置是否置顶，不会被其它元素遮挡住。那么只要改一下就可以了。&lt;/p&gt;
&lt;p&gt;ammap是用了封装好的一个swfobject类来生成flash的相关参数的，并且这个类是被压缩了的，。但是只要格式化一下就OK了。&lt;/p&gt;
&lt;p&gt;然后找到&lt;object&gt;&lt;/object&gt;标签，在其中加入&lt;param name=&amp;#8221;wmode&amp;#8221; value=&amp;#8221;opaque&amp;#8221; /&gt;,由于两边有双引号，自己注意加反斜线的转义。&lt;/p&gt;
&lt;p&gt;好，现在试一下，诶？怎么不行？用IE看一下，结果IE下是可以的，但是chrome和firefox中都办不到。不用急，再在swfobject类中找到&lt;embed&gt;标签，对它加一个属性wmode=”opaque”，注意加转义字符。然后再打开看下效果。OK啦。&lt;/p&gt;
&lt;div id="attachment_1939" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120330151803-ammap-flash-div-up-top-javascript.jpg"&gt;&lt;img class="size-full wp-image-1939" title="20120330151803-ammap-flash-div-up-top-javascript" src="//fukun.org/wp-content/uploads/2012/03/20120330151803-ammap-flash-div-up-top-javascript.jpg" alt="div放到flash之上-ammap-css-javascript-flash" width="600" height="292" srcset="//fukun.org/wp-content/uploads/2012/03/20120330151803-ammap-flash-div-up-top-javascript.jpg 600w, //fukun.org/wp-content/uploads/2012/03/20120330151803-ammap-flash-div-up-top-javascript-300x146.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 div放到flash之上-ammap-css-javascript-flash
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>MySQL怎样优化WHERE子句</title><link>https://fukun.org/archives/03291933.html</link><pubDate>Thu, 29 Mar 2012 06:16:59 +0800</pubDate><guid>https://fukun.org/archives/03291933.html</guid><description>&lt;p&gt;此次讨论的为处理WHERE子句而进行的优化。例子中使用了 SELECT 语句，同样也适用于DELETE和UPDATE语句中的WHERE子句。&lt;/p&gt;
&lt;p&gt;下面列出了MySQL执行的部分优化：&lt;/p&gt;
&lt;p&gt;去除不必要的括号：&lt;/p&gt;
&lt;p&gt;((a AND b) AND c OR (((a AND b) AND (c AND d))))&lt;/p&gt;
&lt;p&gt;-&amp;gt; (a AND b AND c) OR (a AND b AND c AND d)&lt;/p&gt;
&lt;p&gt;常量重叠：&lt;/p&gt;
&lt;p&gt;(a&amp;lt;b AND b=c) AND a=5&lt;/p&gt;
&lt;p&gt;-&amp;gt; b&amp;gt;5 AND b=c AND a=5&lt;/p&gt;
&lt;p&gt;去除常量条件(由于常量重叠需要)：&lt;/p&gt;
&lt;p&gt;(B&amp;gt;=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)&lt;/p&gt;
&lt;p&gt;-&amp;gt; B=5 OR B=6&lt;/p&gt;
&lt;p&gt;索引使用的常数表达式仅计算一次。&lt;/p&gt;</description></item><item><title>SQL优化实例，看我如何把一个耗时1分钟的请求优化到9秒。</title><link>https://fukun.org/archives/03281924.html</link><pubDate>Tue, 27 Mar 2012 17:22:22 +0800</pubDate><guid>https://fukun.org/archives/03281924.html</guid><description>&lt;p&gt;这主要是一个数据统计的web页面，展现统计结果。由于当时需求很紧，要求尽快能出来查询结果就行，而且是说以后会重新对这部分功能进行规划再开发。所以也没有考虑任何性能相关，劈哩啪啦的一天把很多数据统计的功能实现了。&lt;/p&gt;
&lt;p&gt;现在，数据量已然有点规模了，但是还没有再开发的计划，目前还使用这个统计程序，但是由于有些数据量了，并且没有考虑过优化，所以目前查询速度很慢。尤其是其中有一个查询，居然耗时1分多，问题很大啊，今天抽点时间，找找问题，优化一下，主要做的工作的是改进sql语句，添加合适的索引。&lt;/p&gt;
&lt;p&gt;存储的数据是根据用户的ID末尾的值来简单分表的，所以共有0到9一共10个表，需要遍历这10个表，然后把最后的数据相加，再处理后得到最后结果。由于需求还算比较简单，所以没有采用定时脚本去处理前几日的数据后入库保存的做法，如果采用以上做法，速度会快更多。&lt;/p&gt;</description></item><item><title>jQuery- 对Select Option的操作集合大全</title><link>https://fukun.org/archives/03271922.html</link><pubDate>Tue, 27 Mar 2012 03:50:11 +0800</pubDate><guid>https://fukun.org/archives/03271922.html</guid><description>&lt;p&gt;话不多说，直接上代码和注释，需要什么一看就明了。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;//jQuery获取Select选择的Text和Value:

$("#select_id").change(function(){//code...}); //为Select添加事件，当选择其中一项时触发
var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text
var checkValue=$("#select_id").val(); //获取Select选择的Value
var checkIndex=$("#select_id ").get(0).selectedIndex; //获取Select选择的索引值
var maxIndex=$("#select_id option:last").attr("index"); //获取Select最大的索引值 

//jQuery设置Select选择的Text和Value:

$("#select_id ").get(0).selectedIndex=1; //设置Select索引值为1的项选中
$("#select_id ").val(4); //设置Select的Value值为4的项选中
$("#select_id option").attr("selected", true); //设置Select的Text值为jQuery的项选中

//jQuery添加/删除Select的Option项：

$("#select_id").append("&amp;lt;option value='Value'&amp;gt;Text&amp;lt;/option&amp;gt;"); //为Select追加一个Option(下拉项)
$("#select_id").prepend("&amp;lt;option value='0'&amp;gt;请选择&amp;lt;/option&amp;gt;"); //为Select插入一个Option(第一个位置)
$("#select_id option:last").remove(); //删除Select中索引值最大Option(最后一个)
$("#select_id option[index='0']").remove(); //删除Select中索引值为0的Option(第一个)
$("#select_id option[value='3']").remove(); //删除Select中Value='3'的Option
$("#select_id option").remove(); //删除Select中Text='4'的Option
&lt;/pre&gt;</description></item><item><title>ThinkPHP 之 文件上传类 UploadFile.class.php 的使用方法</title><link>https://fukun.org/archives/03261917.html</link><pubDate>Mon, 26 Mar 2012 09:59:38 +0800</pubDate><guid>https://fukun.org/archives/03261917.html</guid><description>&lt;p&gt;ThinkPHP的文件上传类UploadFile.class.php位于ThinkPHPLibORGNet文件内下，其对于文件上传的处理非常的强大和方便。内置的文件上传类UploadFile类提供了下面的功能：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1、上传检测&lt;/p&gt;
&lt;p&gt;2、多文件上传&lt;/p&gt;
&lt;p&gt;3、自动生成上传图片缩略图&lt;/p&gt;
&lt;p&gt;4、支持覆盖方式上传&lt;/p&gt;
&lt;p&gt;5、支持上传类型、附件大小、上传路径定义&lt;/p&gt;
&lt;p&gt;6、采用IFrame方式的Ajax上传机制支持&lt;/p&gt;
&lt;p&gt;7、支持上传文件命名规则&lt;/p&gt;
&lt;p&gt;8、支持对上传文件的Hash规则&lt;/p&gt;
&lt;p&gt;9、可设置是否保存附件数据到数据库&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在上传表单中可以进行很多参数的设置对上传进行灵活的定义，Action类的_upload方法会自动进行相关处理。&lt;/p&gt;
&lt;p&gt;要更好的理解上传保存操作，可以参考ThinkPHP的附件数据表结构，更加详细下面的UploadFile类的参数和使用方法可以参考文件上传类的使用。&lt;/p&gt;</description></item><item><title>Session与Cookie。禁用Cookie后Session会不会受影响？</title><link>https://fukun.org/archives/03251929.html</link><pubDate>Sun, 25 Mar 2012 10:03:04 +0800</pubDate><guid>https://fukun.org/archives/03251929.html</guid><description>&lt;p&gt;　　Session是由应用服务器维持的一个服务器端的存储空间，用户在连接服务器时，会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端，用Cookie保存的，用户提交页面时，会将这一 SessionID提交到服务器端，来存取Session数据。这一过程，是不用开发人员干预的。所以一旦客户端禁用Cookie，那么Session也会失效。&lt;/p&gt;
&lt;p&gt;　　服务器也可以通过URL重写的方式来传递SessionID的值，因此不是完全依赖Cookie。如果客户端Cookie禁用，则服务器可以自动通过重写URL的方式来保存Session的值，并且这个过程对程序员透明。&lt;/p&gt;
&lt;p&gt;　　可以试一下，即使不写Cookie，在使用request.getCookies();取出的Cookie数组的长度也是1，而这个Cookie的名字就是JSESSIONID，还有一个很长的二进制的字符串，是SessionID的值。&lt;/p&gt;
&lt;p&gt;　　来看一下，即使不写Cookie，通过chrome的开发者工具，也可以看到这么一组cookie的键值 ｛PHPSESSID : 3e23bc66d024af8b531f2adb192478af｝。&lt;/p&gt;
&lt;div id="attachment_1930" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/201203281806-php-session-cookie-phpsessid.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/03/201203281806-php-session-cookie-phpsessid-600x124.jpg" alt="Session与Cookie区别-禁用cookie会不会影响session?" title="201203281806-php-session-cookie-phpsessid" width="600" height="124" class="size-large wp-image-1930" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Session与Cookie区别-禁用cookie会不会影响session?
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>求解，mysql查询建立索引后查询速度反而不如未建立索引以前</title><link>https://fukun.org/archives/03231912.html</link><pubDate>Fri, 23 Mar 2012 09:47:17 +0800</pubDate><guid>https://fukun.org/archives/03231912.html</guid><description>&lt;p&gt;mysql 符合索引，未建立以前用时1.72s，建立一个符合索引后，反而用时2.44s，时间反而更长，是哪的问题呢，求解。。&lt;/p&gt;
&lt;p&gt;以下是表结构和mysql explain 后的结果:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mysql&amp;gt; show create table new_bind_mp_weibo_user_info_0;
+----+| Table | Create Table |+---+
| new_bind_mp_weibo_user_info_0 | CREATE TABLE `new_bind_mp_weibo_user_info_0` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `weiboid` varchar(20) NOT NULL,
 `weiboun` varchar(100) NOT NULL,
 `mpnumber` varchar(11) NOT NULL,
 `apmac` varchar(100) NOT NULL,
 `bindtime` datetime NOT NULL,
 `source` varchar(255) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `search_key` (`bindtime`)
) ENGINE=MyISAM AUTO_INCREMENT=2768 DEFAULT CHARSET=utf8 | 
+-------------------------------+-----------------------------------------------------+
1 row in set (0.00 sec)

mysql&amp;gt; show create table weibo_user_visit_info_0;
+-----------------+| Table | Create Table |+---------------------------------+
| weibo_user_visit_info_0 | CREATE TABLE `weibo_user_visit_info_0` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `weiboid` varchar(20) NOT NULL,
 `weiboun` varchar(50) NOT NULL,
 `apmac` varchar(100) DEFAULT NULL,
 `usermac` varchar(100) DEFAULT NULL,
 `mpnumber` varchar(11) DEFAULT NULL,
 `visittime` datetime NOT NULL,
 `source` varchar(255) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `weiboid` (`weiboid`)
) ENGINE=MyISAM AUTO_INCREMENT=17952 DEFAULT CHARSET=utf8 | 
+-------------------------+--------------------------------------------+
1 row in set (0.00 sec)

mysql&amp;gt; alter table weibo_user_visit_info_0 add index `search_index` (`apmac`(17),`visittime`);
Query OK, 17944 rows affected (0.21 sec)
Records: 17944 Duplicates: 0 Warnings: 0
mysql&amp;gt; explain select sql_no_cache count(distinct(a.mpnumber)) as mpnumber, date_format(a.bindtime,'%Y-%m-%d') as gDate from new_bind_mp_weibo_user_info_0 a left join weibo_user_visit_info_0 b on a.mpnumber=b.mpnumber and a.apmac=b.apmac where b.id is NULL and a.apmac in (select ap_mac from newwifi.business_installedAP_info where businessid=100064) and a.bindtime between '2012-03-01' and '2012-03-23 23:59:59' group by gDate order by gDate;
+----+--------------------+---------------------------+-------+---------------+--------------+---------+----------------------------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+---------------------------+-------+---------------+--------------+---------+----------------------------+------+-----------------------------+
| 1 | PRIMARY | a | range | search_key | search_key | 8 | NULL | 394 | Using where; Using filesort | 
| 1 | PRIMARY | b | ref | search_index | search_index | 54 | newwifi_visit_info.a.apmac | 142 | Using where; Not exists | 
| 2 | DEPENDENT SUBQUERY | business_installedAP_info | ref | search_key | search_key | 306 | const,func | 1 | Using index | 
+----+--------------------+---------------------------+-------+---------------+--------------+---------+----------------------------+------+-----------------------------+
3 rows in set (0.00 sec)

mysql&amp;gt; select sql_no_cache count(distinct(a.mpnumber)) as mpnumber, date_format(a.bindtime,'%Y-%m-%d') as gDate from new_bind_mp_weibo_user_info_0 a left join weibo_user_visit_info_0 b on a.mpnumber=b.mpnumber and a.apmac=b.apmac where b.id is NULL and a.apmac in (select ap_mac from newwifi.business_installedAP_info where businessid=100064) and a.bindtime between '2012-03-01' and '2012-03-23 23:59:59' group by gDate order by gDate;
+----------+------------+
| mpnumber | gDate |
+----------+------------+
| 4 | 2012-03-01 | 
| 10 | 2012-03-02 | 
| 3 | 2012-03-03 | 
| 10 | 2012-03-04 | 
| 12 | 2012-03-05 | 
| 10 | 2012-03-08 | 
| 4 | 2012-03-09 | 
| 14 | 2012-03-12 | 
| 14 | 2012-03-13 | 
| 7 | 2012-03-14 | 
| 12 | 2012-03-15 | 
| 8 | 2012-03-16 | 
| 7 | 2012-03-17 | 
| 11 | 2012-03-18 | 
| 11 | 2012-03-19 | 
| 8 | 2012-03-20 | 
| 8 | 2012-03-21 | 
| 9 | 2012-03-22 | 
+----------+------------+
18 rows in set (2.44 sec)

mysql&amp;gt; alter table weibo_user_visit_info_0 drop index search_index;
Query OK, 17944 rows affected (0.13 sec)
Records: 17944 Duplicates: 0 Warnings: 0

mysql&amp;gt; explain select sql_no_cache count(distinct(a.mpnumber)) as mpnumber, date_format(a.bindtime,'%Y-%m-%d') as gDate from new_bind_mp_weibo_user_info_0 a left join weibo_user_visit_info_0 b on a.mpnumber=b.mpnumber and a.apmac=b.apmac where b.id is NULL and a.apmac in (select ap_mac from newwifi.business_installedAP_info where businessid=100064) and a.bindtime between '2012-03-01' and '2012-03-23 23:59:59' group by gDate order by gDate;
+----+--------------------+---------------------------+-------+---------------+------------+---------+------------+-------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+---------------------------+-------+---------------+------------+---------+------------+-------+----------------------------------------------+
| 1 | PRIMARY | a | range | search_key | search_key | 8 | NULL | 394 | Using where; Using temporary; Using filesort | 
| 1 | PRIMARY | b | ALL | NULL | NULL | NULL | NULL | 17944 | Using where; Not exists | 
| 2 | DEPENDENT SUBQUERY | business_installedAP_info | ref | search_key | search_key | 306 | const,func | 1 | Using index | 
+----+--------------------+---------------------------+-------+---------------+------------+---------+------------+-------+----------------------------------------------+
3 rows in set (0.00 sec)
mysql&amp;gt; select sql_no_cache count(distinct(a.mpnumber)) as mpnumber, date_format(a.bindtime,'%Y-%m-%d') as gDate from new_bind_mp_weibo_user_info_0 a left join weibo_user_visit_info_0 b on a.mpnumber=b.mpnumber and a.apmac=b.apmac where b.id is NULL and a.apmac in (select ap_mac from newwifi.business_installedAP_info where businessid=100064) and a.bindtime between '2012-03-01' and '2012-03-23 23:59:59' group by gDate order by gDate;
+----------+------------+
| mpnumber | gDate |
+----------+------------+
| 4 | 2012-03-01 | 
| 10 | 2012-03-02 | 
| 3 | 2012-03-03 | 
| 10 | 2012-03-04 | 
| 12 | 2012-03-05 | 
| 10 | 2012-03-08 | 
| 4 | 2012-03-09 | 
| 14 | 2012-03-12 | 
| 14 | 2012-03-13 | 
| 7 | 2012-03-14 | 
| 12 | 2012-03-15 | 
| 8 | 2012-03-16 | 
| 7 | 2012-03-17 | 
| 11 | 2012-03-18 | 
| 11 | 2012-03-19 | 
| 8 | 2012-03-20 | 
| 8 | 2012-03-21 | 
| 9 | 2012-03-22 | 
+----------+------------+
18 rows in set (1.72 sec)
&lt;/pre&gt;</description></item><item><title>在mysql中获取insert插入数据的id的方法</title><link>https://fukun.org/archives/03221908.html</link><pubDate>Thu, 22 Mar 2012 09:40:48 +0800</pubDate><guid>https://fukun.org/archives/03221908.html</guid><description>&lt;p&gt;我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数,或者刚插入的数据的ID值。&lt;/p&gt;
&lt;p&gt;一般情况下获取刚插入的数据的id，使用select max(id) from table 是可以的。&lt;/p&gt;
&lt;p&gt;但在多线程，高并发的情况下，就不行了。&lt;/p&gt;
&lt;p&gt;开始的时候我想的是使用mysql_insert_id(),不知道会不会在并发的时候产生影响，查询了下手册，也是才发现，是根据connection来的，不同用户间不会产生影响。所以也不用去想先把表锁起来，插入取得ID值后再解锁。直接正常插入，然后取值，即可。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;int mysql_insert_id ([ resource $link_identifier ] )&lt;/p&gt;
&lt;p&gt;mysql_insert_id()返回给定的 link_identifier中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier，则使用上一个打开的连接。&lt;/p&gt;
&lt;p&gt;如果上一查询没有产生 AUTO_INCREMENT 的值，则 mysql_insert_id()返回 0。如果需要保存该值以后使用，要确保在产生了值的查询之后立即调用 mysql_insert_id()。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;warning: mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id()的返回值转换成 long（PHP 中命名为 int）。如果 AUTO_INCREMENT 的列的类型是 BIGINT，则 mysql_insert_id()返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;此外，还可以通过QUERY两个SQL语句来执行：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;--1 ,查询 LAST_INSERT_ID()
mysql&amp;gt; select LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 4 | 
+------------------+
1 row in set (0.00 sec)

--2 查询 @@IDENTITY
mysql&amp;gt; select @@IDENTITY;
+------------+
| @@IDENTITY |
+------------+
| 4 | 
+------------+
1 row in set (0.00 sec)

&lt;/pre&gt;</description></item><item><title>Mysql中，int(10)和int(11)有什么区别?</title><link>https://fukun.org/archives/03211905.html</link><pubDate>Tue, 20 Mar 2012 17:54:20 +0800</pubDate><guid>https://fukun.org/archives/03211905.html</guid><description>&lt;p&gt;首先说一下mysql的数值类型，MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC)，以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。关键字INT是INTEGER的同义词，关键字DEC是DECIMAL的同义词。&lt;/p&gt;
&lt;p&gt;BIT数据类型保存位字段值，并且支持MyISAM、MEMORY、InnoDB和BDB表。&lt;/p&gt;
&lt;p&gt;作为SQL标准的扩展，MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。&lt;/p&gt;
&lt;table id="table1" style="border-collapse: collapse; padding: 6px 6px 6px 12px; color: #4f6b72; font-size: 14px; border: 1 solid #C1DAD7;" cellspacing="0" cellpadding="0"&gt;
 &lt;tr style="text-align: center;"&gt;
 &lt;td&gt;
 &lt;strong&gt;类型&lt;/strong&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 &amp;lt;strong&amp;gt;字节&amp;lt;/strong&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 &amp;lt;strong&amp;gt;最小值&amp;lt;/strong&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 &amp;lt;strong&amp;gt;最大值&amp;lt;/strong&amp;gt;
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr style="text-align: center;"&gt;
 &lt;td&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 &amp;lt;strong&amp;gt;(带符号的/无符号的)&amp;lt;/strong&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 &amp;lt;strong&amp;gt;(带符号的/无符号的)&amp;lt;/strong&amp;gt;
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 TINYINT
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 1
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 -128
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 127
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 255
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 SMALLINT
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 2
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 -32768
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 32767
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 65535
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 MEDIUMINT
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 3
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 -8388608
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 8388607
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 16777215
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 INT
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 4
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 -2147483648
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 2147483647
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 4294967295
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 BIGINT
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 8
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 -9223372036854775808
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 9223372036854775807
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td&amp;gt;
 18446744073709551615
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style="color: #3366ff;"&gt;Mysql类型关键字后面的括号内指定整数值的显示宽度&lt;/span&gt;(例如，INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围，也不限制超过列的指定宽度的值的显示。&lt;/p&gt;
&lt;p&gt;当结合可选扩展属性ZEROFILL使用时， 默认补充的空格用零代替。例如，对于声明为INT(5) ZEROFILL的列，值4检索为00004。请注意如果在整数列保存超过显示宽度的一个值，当MySQL为复杂联接生成临时表时会遇到问题，因为在这些情况下MySQL相信数据适合原列宽度。&lt;/p&gt;
&lt;p&gt;所有整数类型可以有一个可选(非标准)属性UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值。&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #3366ff;"&gt;所以int(10)与int(11)后的括号中的字符表示显示宽度，整数列的显示宽度与mysql需要用多少个字符来显示该列数值，与该整数需要的存储空间的大小都没有关系，int类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型)。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>如何查看安装的linux操作系统是多少位的？32位还是64位？</title><link>https://fukun.org/archives/03201888.html</link><pubDate>Tue, 20 Mar 2012 02:55:09 +0800</pubDate><guid>https://fukun.org/archives/03201888.html</guid><description>&lt;p&gt;如何确定linux操作系统是32位还是64位的？&lt;/p&gt;
&lt;p&gt;只要只用以下几个命令即可实现。&lt;/p&gt;
&lt;p&gt;5种查看linux操作系统是多少位的方法：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#1. uname -a 通过查看i386还是x86_64即可确认
#32位
[fukun@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux
#64位
[fukun @~]$uname -a
Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

#2.使用更简单的 uname -i ，更直接的看到结果
#32位
[fukun@localhost ~]$ uname -i
i386
#64位
[fukun @~]$uname -i
x86_64

#3.通过 getconf LONG_BIT
#32位
[fukun@localhost ~]$ getconf LONG_BIT
32
#64位
[fukun @~]$getconf LONG_BIT
64

#4.通过echo $HOSTTYPE来查看
#32位
[fukun@localhost ~]$ echo $HOSTTYPE
i686
#64位
[fukun @~]$echo $HOSTTYPE
x86_64

#5.通过 file /sbin/init 来确认
#32位
[fukun@localhost ~]$ file /sbin/init
/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
#64位
[fukun @~]$file /sbin/init
/sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

#ps.使用 getconf WORD_BIT不可行，在32位或64位下，获得的值都为32.

&lt;/pre&gt;</description></item><item><title>apache日志分析处理；如何通过apache日志计算出PV数和UV数？</title><link>https://fukun.org/archives/03191870.html</link><pubDate>Mon, 19 Mar 2012 03:25:28 +0800</pubDate><guid>https://fukun.org/archives/03191870.html</guid><description>&lt;p&gt;google了下，没有找到如何通过apache日志计算出PV数和UV数，在知乎上提问了个，等待高人解答吧。&lt;/p&gt;
&lt;p&gt;—–&lt;/p&gt;
&lt;p&gt;等了一下午，知乎上也木有人能给出合理的算法，chinaunix上也木有，stackoverflow.com上也木有，自己找时间看一下awstats吧，看看能不能找到答案。&lt;/p&gt;
&lt;p&gt;—-&lt;/p&gt;
&lt;p&gt;&lt;span style="color:red;"&gt;来公布答案了~~&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;查询了awstats的文档说明，http://awstats.sourceforge.net/docs/awstats_glossary.html 这里&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Glossary&lt;/p&gt;
&lt;p&gt;Unique Visitor:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;A unique visitor is a person or computer (host) that has made at least 1 hit on 1 page of your web site during the current period shown by the report. If this user makes several visits during this period, it is counted only once. Visitors are tracked by IP address, so if multiple users are accessing your site from the same IP (such as a home or office network), they will be counted as a single unique visitor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The period shown by AWStats reports is by default the current month.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;However if you use AWStats as a CGI you can click on the “year” link to have a report for all the year. In such a report, period is a full year, so Unique Visitors are number of hosts that have made at least 1 hit on 1 page of your web site during the year.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;awstats中， unique visitor 是根据IP来计算的，所以awstats中统计的UV值，即是IP值。&lt;/p&gt;
&lt;p&gt;webtrends中， 也有对UV的统计，不过webtrends也是有JS统计代码的，所以，它的统计原理跟大部分统计代码都一样，通过JS获取客户端的cookie来计算UV值。&lt;/p&gt;
&lt;p&gt;附一段webtrends的统计代码，为了避嫌，把敏感信息改掉了，大家看看就行了：&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;&amp;lt;!-- START OF SmartSource Data Collector TAG --&amp;gt;

&amp;lt;!-- Copyright (c) 1996-2006 WebTrends Inc. All rights reserved. --&amp;gt;

&amp;lt;!-- V8.0 --&amp;gt;

&amp;lt;!-- $DateTime: 2006/06/27 11:16:10 $ --&amp;gt;

&amp;lt;SCRIPT TYPE="text/javascript"&amp;gt;&amp;lt;!--

var gDomain="w.domain.com.cn";	// SDC Production Mode Domain

var gDcsId="dcsoujabcdefghv3n65j4j3j2j2j_test";



var gFpc="WT_FPC";

var gConvert=true;



var gJsWtid;



function dcsSyncGetWtid() {

	document.write("&amp;lt;SCR"+"IPT TYPE='text/javascript' SRC='"+"http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js"+"'&amp;gt;&amp;lt;/SCR"+"IPT&amp;gt;");

}

function dcsAsyncGetWtid() {

	gJsWtid=document.createElement("script");

	var jsWtidUrl="http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js";

	window.setTimeout('gJsWtid.src="' + jsWtidUrl + '"',0);

	var headElem=document.getElementsByTagName("head")[0];

	headElem.appendChild(gJsWtid);

}



if ((typeof(gConvert)!="undefined")&amp;&amp;gConvert&amp;&amp;(document.cookie.indexOf(gFpc+"=")==-1)&amp;&amp;(document.cookie.indexOf("WTLOPTOUT=")==-1)){

//	dcsSyncGetWtid();

	dcsAsyncGetWtid();

}



//--&amp;gt;

&amp;lt;/SCRIPT&amp;gt;



&amp;lt;SCRIPT SRC="/inc/js/dcs_tag.js" TYPE="text/javascript"&amp;gt;&amp;lt;/SCRIPT&amp;gt;



&amp;lt;NOSCRIPT&amp;gt;

&amp;lt;IMG ALT="" BORDER="0" NAME="DCSIMG" WIDTH="1" HEIGHT="1" SRC="http://w.domain.com.cn/dcsoujabcdefghv3n65j4j3j2j2j_test/njs.gif?dcsuri=/nojavascript&amp;WT.js=No&amp;WT.tv=8.0.0"&amp;gt;

&amp;lt;/NOSCRIPT&amp;gt;

&amp;lt;!-- END OF SmartSource Data Collector TAG --&amp;gt;
&lt;/pre&gt;
&lt;p&gt;查看并询问了一些关于Google Analytics计算UV数的算法，记录如下（感谢 yeshu &lt;a href="http://www.wainsight.com"&gt;http://www.wainsight.com&lt;/a&gt;）：&lt;/p&gt;
&lt;p&gt;Google Analytics对于独立访客(UV)的计算，是基于访客浏览器中cookie来确定的，当访客第一次（或cookie丢失后）访问添加GATC的代码时，便会创建一个唯一的cookie（即一个UV），cookie中utma变量记录了访客ID、访问次数、访问时间等信息，UV数以此累加。当访客丢失cookie或更换浏览器重新访问网站，都将会被认为新访客，而创建一个cookie，记录为一个新的UV。&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;以下内容也是一些关于apache日志分析的东东，记录下来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.什么是UV?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;UV是unique visitor的简写，是指独立访客，是以实际访问的电脑计数。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.什么是IP?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;IP是国际互联网协议(Internet Protocol)的简称，是通过网络间信息地址定位具体计算机的方式之一。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.UV和IP的概念有什么区别?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于IP来说，它在同一级别的网络(例如某个局域网、社区网、教学楼网或者INTERNET)范围内是唯一的，同一局域网内的所有电脑都只有一个共同ip。&lt;/p&gt;
&lt;p&gt;举例来说，我在一个局域网里，对外的IP是219.129.170.111，那么跟我同一局域网里的所有电脑都是这个IP，也就是说假如整个局域网的电脑都访问您的网站的话，在24小时内也只计算一个IP，所以相对UV来说不是很精确。&lt;/p&gt;
&lt;p&gt;而UV跟IP稍有不同，UV是访问你的网站的每一台电脑客户端。现在很多朋友用的网络都是局域网，引入了UV后，就能更精确的统计。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;总结：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;UV的统计数比IP更为准确，能够准确的计数每一台访问电脑，而IP把同一局域内的所有电脑视为一个。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(PS:UV计数会涉及COOKIE。)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>流量统计方法分类 – web server log 和 page tagging</title><link>https://fukun.org/archives/03181883.html</link><pubDate>Sun, 18 Mar 2012 09:27:43 +0800</pubDate><guid>https://fukun.org/archives/03181883.html</guid><description>&lt;p&gt;&lt;strong&gt;一、什么是web server log 和 page tagging&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**web server log：**使用软件将原始数据解析为有用的数据。主要的工具有awstats、webtrends(收费）。&lt;/p&gt;
&lt;p&gt;以下为具体的服务器日志：&lt;/p&gt;
&lt;pre lang="bash"&gt;202.80.215.14 - - [10/Mar/2012:01:29:59 -0700] "GET www.domain.com/index.php HTTP/1.1" 200 99314 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5"&lt;/pre&gt;
&lt;p&gt;web server log主要可统计到的数据为：&lt;/p&gt;
&lt;div id="attachment_1884" style="width: 490px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120318-web-server-log-content-awstats-webtrends.png"&gt;&lt;img class="size-full wp-image-1884" title="20120318-web-server-log-content-awstats-webtrends" src="//fukun.org/wp-content/uploads/2012/03/20120318-web-server-log-content-awstats-webtrends.png" alt="Apache日志包含的各字段内容及其含义" width="480" height="291" srcset="//fukun.org/wp-content/uploads/2012/03/20120318-web-server-log-content-awstats-webtrends.png 480w, //fukun.org/wp-content/uploads/2012/03/20120318-web-server-log-content-awstats-webtrends-300x182.png 300w" sizes="(max-width: 480px) 100vw, 480px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Apache日志包含的各字段内容及其含义
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>St. Patrick Day – 圣帕特里克节</title><link>https://fukun.org/archives/03171863.html</link><pubDate>Sat, 17 Mar 2012 14:32:49 +0800</pubDate><guid>https://fukun.org/archives/03171863.html</guid><description>&lt;p&gt;今天玩NBA2K12时，所有的各节开始结束后出现的页面都挂着清一色的绿色，还有一个戴着绿色帽子的小人拿着一个篮球。。开始还以为是凯尔特人的啥节呢。。后来出现了文字，发现是个 Happy St. Patrick’s Day .可惜不知道咋截图，用键盘的printscreen键获取的截图是全黑的，这个截图对3D的全屏游戏无奈啊，，。怪不得也觉得这几天看的NBA里觉得有些队的颜色有些不对劲。&lt;/p&gt;
&lt;div id="attachment_1868" style="width: 409px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120317-new-york-green.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/03/20120317-new-york-green-399x600.jpg" alt="美国时间2012年3月17日的比赛中，纽约尼克斯队VS步行者的比赛中，尼克斯队的球衣颜色" title="New York Knicks v Indiana Pacers" width="399" height="600" class="size-large wp-image-1868" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 美国时间2012年3月17日的比赛中，纽约尼克斯队VS步行者的比赛中，尼克斯队的球衣颜色
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;查了一些相关信息，做个纪录吧。&lt;/p&gt;
&lt;p&gt;St. Patrick Day&lt;/p&gt;
&lt;p&gt;原本只是爱尔兰的传统节日的St. Patrick Day ，却在世界各地广为庆祝；这小小岛国迸发出的能量可见一斑。 St. Patrick Day 对于美国人一样意义深远，身在美国的华人也许心里难免有些羡慕，什么时候我们的春节也能在异国他乡受到如此之高的礼遇啊。回顾爱尔兰人的移民史，追溯 St. Patrick Day 的来龙去脉，可以看到，爱尔兰人与华人一样，走过了一条十分艰辛移民路。&lt;/p&gt;
&lt;p&gt;爱尔兰流传着一首民谣：”The Green Fields of America”:&lt;/p&gt;
&lt;p&gt;“So pack up your sea-stores, consider no longer,&lt;/p&gt;
&lt;p&gt;Ten dollars a week is not very bad pay,&lt;/p&gt;
&lt;p&gt;With no taxes or tithes to devour up your wages,&lt;/p&gt;
&lt;p&gt;When you’re on the green fields of America.”&lt;/p&gt;</description></item><item><title>Google Analytics数据统计的原理，如何计算PV,UV,IP</title><link>https://fukun.org/archives/03161875.html</link><pubDate>Fri, 16 Mar 2012 08:49:55 +0800</pubDate><guid>https://fukun.org/archives/03161875.html</guid><description>&lt;p&gt;Google Analytics功能非常强大，只要在网站的页面上加入一段代码，就可以提供的丰富详尽的图表式报告。Google Analytics的数据采集功能是采用AJAX技术来实现，整体架构如图所示：&lt;/p&gt;
&lt;div id="attachment_1876" style="width: 596px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120319-google-analytics-architecture.png"&gt;&lt;img class="size-full wp-image-1876" title="20120319-google-analytics-architecture" src="//fukun.org/wp-content/uploads/2012/03/20120319-google-analytics-architecture.png" alt="Google Analytics的数据采集整体功能架构" width="586" height="432" srcset="//fukun.org/wp-content/uploads/2012/03/20120319-google-analytics-architecture.png 586w, //fukun.org/wp-content/uploads/2012/03/20120319-google-analytics-architecture-300x221.png 300w" sizes="(max-width: 586px) 100vw, 586px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Google Analytics的数据采集整体功能架构
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;我们都知道在使用Google Analytics需要在网站上加上跟踪代码（Google Analytics Tracking Code，简称GATC） ，下面我们就来研究下跟踪代码是如何进行工作的。&lt;/p&gt;
&lt;p&gt;谷歌分析跟踪代码(GATC) 检索网页数据如下：&lt;/p&gt;
&lt;p&gt;浏览器请求的网页包含跟踪代码。&lt;/p&gt;
&lt;p&gt;GATC创建并初始化一个对象的属性与网络相关的跟踪ID在代码中。&lt;/p&gt;
&lt;p&gt;GATC执行你自定义任何跟踪方法。&lt;/p&gt;
&lt;p&gt;跟踪代码初始化和管理以下信息：跟踪检索查看是否包括广告系列；收集HTTP请求中的各种用户信息的到Google GATC。&lt;/p&gt;
&lt;p&gt;将访问者HTTP请求包含GATC跟踪信息收集到参数名单。&lt;/p&gt;</description></item><item><title>i386和i686有什么区别？各自的具体定义是什么？</title><link>https://fukun.org/archives/03141894.html</link><pubDate>Wed, 14 Mar 2012 03:09:42 +0800</pubDate><guid>https://fukun.org/archives/03141894.html</guid><description>&lt;p&gt;i386和i686&lt;/p&gt;
&lt;p&gt;现在所有的intel 32位体系（包括AMD等兼容CPU)都叫i386体系，包括P4。、i686仍然属于i386体系，不过对CPU（相对于386)的特性作了指令优化。GNU/Linux分为alpha、PowerPC、Sun等各个不同版本，所有从Intel386-P4都用i386版本，但i386版本中有几个内核（i486,i486,i586,i686)，安装时安装程序检测到你得CPU级别后，自动为你安装相应内核。&lt;/p&gt;
&lt;p&gt;与cpu的指令集有关.I代表与intel的指令集兼容，后面的数字是指cpu的分类。&lt;/p&gt;
&lt;p&gt;因为intel的cpu经过这么久的发展，不断的更新，产生从8086,8088,80286,80386,80486,奔腾（586),奔腾二代（686)，奔腾三代（686)…cpu的每次换代，都增加了一些新的指令集,但都向后兼容（就是说后面的CPU都能完全使用前面的CPU的指令集）。而软件包为了能发挥好cpu的全部性能，就加入cpu相对应能指行的指令。因此就产生了各种不同的软件包。所以，i686的软件包能在奔腾二代以上的cpu上执行，但基本不能在此之先的cpu如486上执行。而i386的软件包既可在i386的电脑上执行，也可在后面所有的cpu上执行（如奔三、奔四，但不能发挥cpu的最佳性能。）&lt;/p&gt;
&lt;p&gt;i686指的是Pentium Pro以及此后的Intel IA32 CPU，也就是平常我们所说的P6系列处理器。&lt;/p&gt;
&lt;p&gt;i386不用说了，泛指80386以后的。&lt;/p&gt;</description></item><item><title>PHP parse_url() URL 解析函数 / pathinfo() 函数</title><link>https://fukun.org/archives/03131856.html</link><pubDate>Tue, 13 Mar 2012 05:59:18 +0800</pubDate><guid>https://fukun.org/archives/03131856.html</guid><description>&lt;p&gt;parse_url() 函数可以解析 URL，返回其组成部分。它的用法如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;array parse_url ( string url )&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;此函数返回一个关联数组，包含现有 URL 的各种组成部分。如果缺少了其中的某一个，则不会为这个组成部分创建数组项。组成部分为：&lt;/p&gt;
&lt;ul id="article"&gt;
 &lt;li&gt;
 scheme &amp;#8211; 如 http
 &lt;/li&gt;
 &lt;li&gt;
 host
 &lt;/li&gt;
 &lt;li&gt;
 port
 &lt;/li&gt;
 &lt;li&gt;
 user
 &lt;/li&gt;
 &lt;li&gt;
 pass
 &lt;/li&gt;
 &lt;li&gt;
 path
 &lt;/li&gt;
 &lt;li&gt;
 query &amp;#8211; 在问号 ? 之后
 &lt;/li&gt;
 &lt;li&gt;
 fragment &amp;#8211; 在散列符号 # 之后
 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此函数并不意味着给定的 URL 是合法的，它只是将上方列表中的各部分分开。parse_url() 可接受不完整的 URL，并尽量将其解析正确。此函数对相对路径的 URL 不起作用。&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
	$url = "http://www.digdeeply.org/wp-admin/";
	$parts = parse_url($url);
	
	print_r($parts);
?&amp;gt;

&lt;/pre&gt;
&lt;p&gt;程序运行结果如下：&lt;/p&gt;
&lt;p&gt;Array ( [scheme] =&amp;gt; http [host] =&amp;gt; &lt;a href="https://www.digdeeply.org"&gt;www.digdeeply.org&lt;/a&gt;[path] =&amp;gt; /wp-admin/ )&lt;/p&gt;</description></item><item><title>用鸡讲解技术债务的形成过程</title><link>https://fukun.org/archives/03121853.html</link><pubDate>Mon, 12 Mar 2012 01:58:00 +0800</pubDate><guid>https://fukun.org/archives/03121853.html</guid><description>&lt;p&gt;技术债务，是指在面对需求时，由于仓促实现某些功能特性而对代码库产生了破坏（在此过程中同时破坏了代码库的架构设计）。对于一些经理或客户来说，技术债务仿佛是一个陌生的概念。也许他们知道，只是他们不太想听，我不确定。不管怎样，我想到了一个小故事，在下次提出某些新特性需求时，我会用这个故事告诉他们实现这些特性的代价有多大。&lt;/p&gt;
&lt;div id="attachment_1854" style="width: 496px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120312-chicken-On-technical-debt.jpg"&gt;&lt;img class="size-full wp-image-1854" title="20120312-chicken-On-technical-debt" src="//fukun.org/wp-content/uploads/2012/03/20120312-chicken-On-technical-debt.jpg" alt="用鸡讲解技术债务的形成过程-不要当一个农民" width="486" height="377" srcset="//fukun.org/wp-content/uploads/2012/03/20120312-chicken-On-technical-debt.jpg 486w, //fukun.org/wp-content/uploads/2012/03/20120312-chicken-On-technical-debt-300x233.jpg 300w" sizes="(max-width: 486px) 100vw, 486px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 用鸡讲解技术债务的形成过程-不要当一个农民
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>零宽断言,负向零宽断言</title><link>https://fukun.org/archives/03101858.html</link><pubDate>Sat, 10 Mar 2012 07:31:07 +0800</pubDate><guid>https://fukun.org/archives/03101858.html</guid><description>&lt;p&gt;零宽断言是正则表达式中的一种方法&lt;/p&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;p&gt;正则表达式在计算机科学中，是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里，正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如，在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件（例如sed和grep）普及开的。正则表达式通常缩写成“regex”，单数有regexp、regex，复数有regexps、regexes、regexen。&lt;/p&gt;</description></item><item><title>从事产品设计应订阅的13个团队博客–腾讯,百度,淘宝,新浪</title><link>https://fukun.org/archives/03091851.html</link><pubDate>Fri, 09 Mar 2012 02:31:34 +0800</pubDate><guid>https://fukun.org/archives/03091851.html</guid><description>&lt;p&gt;各大互联网公司几乎都有自己的产品设计博客，他们在分享产品设计、用户体验和交互设计的一些经验。产品设计，就是确定产品的外观，包括用户界面设计（UI，User Interface）和用户交互设计（User Interaction），是产品的门面，是决定用户去留的关键要素。如今，大多数的应用已经不存在技术难题，在这个企业不缺系统，互联网不缺产品而用户不懂技术的时刻，你靠什么赢得用户？&lt;/p&gt;
&lt;p&gt;所以好的产品设计才是软件产品和互联网产品竞争力的关键。产品设计包含产品需求设计,运营式研发,交互设计与视觉设计,确定产品的外观，包括用户界面设计（UI，User Interface）和用户交互设计（User Interaction），包含所有的用户体验部分。&lt;/p&gt;
&lt;p&gt;下面介绍各大互联网公司的产品设计团队博客：&lt;/p&gt;
&lt;p&gt;1，淘宝UED &lt;a href="http://ued.taobao.com/blog" target="_blank"&gt;&lt;a href="http://ued.taobao.com/blog"&gt;http://ued.taobao.com/blog&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;淘宝网用户体验团队博客，有关用户体验设计和研究的经验分享。UED的本意是用户体验设计，是英文User Experience Design的缩写。通常的理解，他们做的一切都是为了呈现在您眼前的页面。他们关心用户的操作，关心用户的感受。为了用户更好的购物体验，为了用户每月达成更多的交易，为了用户的满意&lt;/p&gt;
&lt;p&gt;2，新浪UED &lt;a href="http://ued.sina.com/" target="_blank"&gt;&lt;a href="http://ued.sina.com"&gt;http://ued.sina.com&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;一个关注用户体验、关注工作流、关注作品质量的有爱团队。关注交互设计、前端开发、团队活动、用户研究、网页重构、视觉设计等与用户体验和界面设计有关的研究。&lt;/p&gt;</description></item><item><title>ThinkPHP开启Gzip压缩，减少带宽消耗</title><link>https://fukun.org/archives/03081942.html</link><pubDate>Thu, 08 Mar 2012 09:55:31 +0800</pubDate><guid>https://fukun.org/archives/03081942.html</guid><description>&lt;p&gt;不知道是我了解的少，还是ThinkPHP本来就不支持gzip压缩，每次流量都消耗的太大了，尤其是在 SAE上托管的这种程序来说，那一分一秒，跑得都是人民币啊。。&lt;/p&gt;
&lt;p&gt;ThinkPHP下开启Gzip压缩很简单，不管你是哪个版本，只要在你的入口文件index.php中加入以下两行，如果你的服务器支持，那么就OK了。&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;define ( "GZIP_ENABLE", function_exists ( 'ob_gzhandler' ) );
ob_start ( GZIP_ENABLE ? 'ob_gzhandler' : null );
&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div id="attachment_1943" style="width: 589px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120330175830-ThinkPHP-Gzip-http.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/03/20120330175830-ThinkPHP-Gzip-http-579x600.jpg" alt="ThinkPHP中开启Gzip压缩 节省流量74.97%" title="20120330175830-ThinkPHP-Gzip-http" width="579" height="600" class="size-large wp-image-1943" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 ThinkPHP中开启Gzip压缩 节省流量74.97%
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>SAE内网SAE Error: RESET Error;</title><link>https://fukun.org/archives/03071849.html</link><pubDate>Wed, 07 Mar 2012 10:04:52 +0800</pubDate><guid>https://fukun.org/archives/03071849.html</guid><description>&lt;p&gt;由于微博API要求从2011年12月26日起，所有请求必须加入请求者的IP。由于从内网发起请求，最后header中获得的IP为10打头的内网IP，导致认证失败。&lt;/p&gt;
&lt;p&gt;修改sae的SaeTClientV2类的http(）方法中检测下,如果IP是10打头的内网IP，强制转换header中的saeremoteip为一个外网IP。&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$remote_addr = $_SERVER['REMOTE_ADDR'];
		if (substr($remote_addr,0,3) === '10.') {
			$remote_addr = '61.135.152.203';
			$headers[] = "SaeRemoteIP: " . $remote_addr;
		}
&lt;/pre&gt;</description></item><item><title>移动创业者筹备放弃谷歌地图,应对牌照僵局</title><link>https://fukun.org/archives/03051835.html</link><pubDate>Mon, 05 Mar 2012 02:08:30 +0800</pubDate><guid>https://fukun.org/archives/03051835.html</guid><description>&lt;p&gt;　“有新版本可用：支持高德、谷歌、百度、图吧等多种地图接入方式，查询路线更方便。”2012年2月，有用户发现大众点评手机端新版本出现了如此推送提示。&lt;/p&gt;
&lt;p&gt;　这一细节的背后，是以电子地图为圆心的产业链风向标的悄然变动。&lt;/p&gt;
&lt;p&gt;眼下，谷歌地图在国内申请互联网地图服务资质的事件仍陷入僵局。牵一发而动全身。如果谷歌在国内手机客户端地图、网页地图、地图应用程序（API）接入市场等业务受影响，必然会波及产业链上的众多厂商。&lt;/p&gt;
&lt;p&gt;　除了大众点评之外，今年来，一大批接入谷歌地图的第三方创业者正悄然行动，提前作出备案。&lt;/p&gt;
&lt;p&gt;　谷歌地图未来走势暂且不议，而围绕电子地图展开的四大链条开始浮出水面。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;四大链条 两大牌照&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;　谷歌地图的牌照申请一直为大众所关注，而这仅仅是整个电子地图产业链上的一环。&lt;/p&gt;
&lt;p&gt;据业内人士在接受腾讯科技专访时介绍，目前国内电子地图产业链，从最上游开始依次共有数据类、软件类、互联网及移动互联网服务类3大环节，细分4大链条：&lt;/p&gt;
&lt;div id="attachment_1842" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/03/20120305-google-map-give-up.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/03/20120305-google-map-give-up.jpg" alt="国内电子地图四大产业链" title="20120305-google-map-give-up" width="550" height="288" class="size-full wp-image-1842" srcset="//fukun.org/wp-content/uploads/2012/03/20120305-google-map-give-up.jpg 550w, //fukun.org/wp-content/uploads/2012/03/20120305-google-map-give-up-300x157.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 国内电子地图四大产业链
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>windows下php_curl获取https内容</title><link>https://fukun.org/archives/03031829.html</link><pubDate>Sat, 03 Mar 2012 10:04:02 +0800</pubDate><guid>https://fukun.org/archives/03031829.html</guid><description>&lt;p&gt;在搞一个新浪微博小应用，在本地搞的开发环境，win7 旗舰版 64位。&lt;/p&gt;
&lt;p&gt;当使用php_curl curl_init() curl_exec()时候，发现当访问接口文件 &lt;a href="https://api.weibo.com/oauth2/access"&gt;https://api.weibo.com/oauth2/access&lt;/a&gt;_token 要进行登陆认证时，返回结果为false，没有抓取到内容。但是访问http的内容时是正常的，但是openssl也是打开的啊，应该是可以的。&lt;/p&gt;
&lt;p&gt;找了半天问题，后来仔细想了一下，认为可能是打开ssl内容时的证书验证问题，于是， 在curl里加入了如下参数，取消证书检验：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$ch = curl_init();

 curl_setopt($ch,CURLOPT_TIMEOUT,$second);

 curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);

 curl_setopt($ch,CURLOPT_URL,$url);
 
 //取消证书检验
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 
 curl_setopt($ch,CURLOPT_POST, 1);

 curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
 
 $data = curl_exec($ch);

 curl_close($ch);
&lt;/pre&gt;</description></item><item><title>明星软件工程师的10种特质</title><link>https://fukun.org/archives/03021826.html</link><pubDate>Fri, 02 Mar 2012 02:40:43 +0800</pubDate><guid>https://fukun.org/archives/03021826.html</guid><description>&lt;p&gt;如今，每家公司都似乎成了科技公司。从软件创业公司到投机性投资公司、制药巨头和媒体巨头，它们都越来越多地加入到软件业务行列。&lt;/p&gt;
&lt;p&gt;代码质量不仅成为了一个必需品，更成为了一个竞争优势。因为众多公司围绕软件而竞争，开发软件的人——软件工程师正显得越发重要。但是，你该如何发现那种百里挑一的程序员呢？在本文中，我们简明扼要地列出了明星开发人员的10种特质。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ol&gt;
&lt;li&gt;热爱编程&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="2"&gt;
&lt;li&gt;完成事情&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="3"&gt;
&lt;li&gt;持续重构代码&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="4"&gt;
&lt;li&gt;使用设计模式&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="5"&gt;
&lt;li&gt;编写测试&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="6"&gt;
&lt;li&gt;善用现有代码&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="7"&gt;
&lt;li&gt;专注可用性&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="8"&gt;
&lt;li&gt;编写可维护的代码&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="9"&gt;
&lt;li&gt;能用任何语言编程&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start="10"&gt;
&lt;li&gt;知晓基本的计算机科学&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>linux命令：apachectl 命令详解-graceful 不中断原有连接,重新启动Apache服务器</title><link>https://fukun.org/archives/03011813.html</link><pubDate>Thu, 01 Mar 2012 07:19:37 +0800</pubDate><guid>https://fukun.org/archives/03011813.html</guid><description>&lt;p&gt;apachectl(Apache control interface)&lt;/p&gt;
&lt;p&gt;功能说明：可用来控制Apache HTTP服务器的程序。&lt;/p&gt;
&lt;p&gt;apachectl is a front end to the Apache HyperText Transfer Protocol (HTTP) server. It is designed to help the administrator control the functioning of the Apache httpd daemon.&lt;/p&gt;
&lt;p&gt;语　　法：apachectl [configtest][fullstatus][graceful][help][restart][start][status][stop]&lt;/p&gt;
&lt;p&gt;某些系统下某些参数命令可能不可用，如fullstatus、status&lt;/p&gt;
&lt;p&gt;补充说明：apachectl是slackware内附Apache HTTP服务器的script文件，可供管理员控制服务器，但有些Linux的Apache HTTP服务器不一定有这个文件。&lt;/p&gt;
&lt;p&gt;参　　数：&lt;/p&gt;
&lt;pre style="background-color:black;color:#00F000;"&gt;configtest 检查设置文件中的语法是否正确。用于修改了配置文件后进行测试是否有误。
 fullstatus 显示服务器完整的状态信息。
 graceful 重新启动Apache服务器，但不会中断原有的连接。用于修改了配置文件后进行重新读取配置文件。
 help 显示帮助信息。
 restart 重新启动Apache服务器。 = httpd -k restart
 start 启动Apache服务器。
 status 显示服务器摘要的状态信息。
 stop 停止Apache服务器。

&lt;/pre&gt;</description></item><item><title>mysql命令行,多行命令时如何取消/返回修改前边的命令</title><link>https://fukun.org/archives/02291811.html</link><pubDate>Wed, 29 Feb 2012 02:23:37 +0800</pubDate><guid>https://fukun.org/archives/02291811.html</guid><description>&lt;p&gt;mysql命令行中执行多行命令时，如果前边输入的命令发生错误，是无法返回修改的，但是可以通过输入c来取消前边的输入，但是这时如果前边输入的东西很多，直接取消又很可惜的话，可以通过p来打印出前边的命令，复制下来去修改，然后输入c取消来重新输入命令。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mysql&amp;gt; select 8 from a
 -&amp;gt; where 1=1
 -&amp;gt; and 1=0
 -&amp;gt; p
#输入p后，打印出了前边的命令。
--------------
select 8 from a
where 1=1
 and 1=0
--------------
#依然进入-&amp;gt;状态，等待输入，输入c，取消当前输入。
 -&amp;gt; c
mysql&amp;gt;
&lt;/pre&gt;</description></item><item><title>定州市(定县) – 维基百科</title><link>https://fukun.org/archives/02281807.html</link><pubDate>Tue, 28 Feb 2012 09:41:51 +0800</pubDate><guid>https://fukun.org/archives/02281807.html</guid><description>&lt;h1 id="简介"&gt;简介:&lt;/h1&gt;
&lt;p&gt;定州市是中华人民共和国河北省的一个县级市，隶属于保定市。&lt;/p&gt;
&lt;p&gt;定州市地处于北纬38°14ˊ至38°40ˊ，东经114°48ˊ至115°15ˊ之间，太行山东麓，华北平原西缘，河北省中部偏西，并隶属于地级保定市，平均海拔43.6米，年均日照2611.9小时，年均气温为12.4℃，年际间气温差异不大。年均地面温度为19.6℃；年均降水量为503.2毫米。全年多起东北风。定州位于保定和石家庄之间，京广铁路、107国道、京深高速公路南北纵贯，朔黄铁路横穿东西。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1 id="历史沿革"&gt;历史沿革:&lt;/h1&gt;
&lt;p&gt;商朝时定州之地是北方方国。西周时聚落渐增。春秋时，齐相管仲筑城。战国时，中山国在此定都。西汉置卢奴、安险、新处、苦陉四县，全于今定州市境内。西汉至前秦，卢奴一直是中山国（郡国）都。位于今石刻馆院内的中山汉墓曾一度误传为“靖王坟”和“慕容陵”，1995年经发掘确认此墓为东汉晚期侯级墓。十六国的后燕定都于此。北魏皇始二年（397年）置安州，设行台。天兴三年（400年），改安州为定州，今定州由此而得名，时境内有卢奴、魏昌、安喜三县。北齐废卢奴入安喜，至唐朝只有唐昌、安喜两县。唐代称博陵郡或定州。唐代7大郡望之一的博陵崔氏，其祖籍地便在当时定州治下（现衡水市安平县）。 但是据唐杜佑《通典》记载：“隋初郡废，炀帝初置博陵郡，后改为高阳郡。大唐为定州，或为博陵郡。领县十一：安喜、北平、鼓城、恒阳、新乐、义丰、望都、无极、唐昌、深泽、陉邑。”自北魏至清朝，此地曾为行台、府、路、郡、州的治所。苏轼于宋哲宗元祐八年至绍圣元年(公元1093年至1094年)任定州知州，亲自栽植的两棵槐树现存定州市博物馆内，称”东坡双槐”。 民国初废州改为定县，后曾两度为专署驻地。抗日战争爆发后的1937年10月分为定南、定北县。1940年冬，定北县与唐县、望都、曲阳部分地区合并，设置定唐、望定、定曲三县。1944年望定县、定曲县并入定唐县。1945年日本战败后，恢复定北县。1947年清风店战役后，定南、定北县合并为定县，并建立定县市。翌年定县市并入定县，为定县专署驻地。1958年曲阳并入为定县，但是在1961年定、曲两县重新分置。1986年定县撤县改为定州市。&lt;/p&gt;</description></item><item><title>修改配置文件实现 Zend Studio5.5汉化，不满意可以回退</title><link>https://fukun.org/archives/02271804.html</link><pubDate>Mon, 27 Feb 2012 03:46:47 +0800</pubDate><guid>https://fukun.org/archives/02271804.html</guid><description>&lt;p&gt;直接修改配置文件desktop_options.xml文件就OK了。(文件位置：如我的win7下是：C:UsersrootZDEconfig_5.5)的目录下。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://downloads.zend.com/studio/5.5.0a/ZendStudio-5_5_0a.exe" target="_blank"&gt;ZendStudio-5.5.0a 原版官方下载 for Windows&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://downloads.zend.com/studio/5.5.0a/ZendStudio-5_5_0a.tar.gz" target="_blank"&gt;ZendStudio-5.5.0a 原版官方下载 for Linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://downloads.zend.com/studio/5.5.0a/ZendStudio-5_5_0a-Mac_OS_X.zip" target="_blank"&gt;ZendStudio-5.5.0a 原版官方下载 for Mac_OS_X &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.zendstudio.net/ZendStudio-5_5_0-KeyMaker.rar" target="_blank"&gt;ZendStudio-5.5.0a-KeyMaker for Win32 only&lt;/a&gt;&lt;/p&gt;
&lt;div id="attachment_1805" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120227114223-zde-5.5-zh-cn.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/20120227114223-zde-5.5-zh-cn-600x311.jpg" alt="zend studio 5.5 汉化 - 通过修改配置文件" title="20120227114223-zde-5.5-zh-cn" width="600" height="311" class="size-large wp-image-1805" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 zend studio 5.5 汉化 - 通过修改配置文件
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Ubuntu 下 vim 添加PHP函数自动补全</title><link>https://fukun.org/archives/02251795.html</link><pubDate>Sat, 25 Feb 2012 03:23:57 +0800</pubDate><guid>https://fukun.org/archives/02251795.html</guid><description>&lt;div id="attachment_1798" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/2012-02-25-112717-php-vim-c-k.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/2012-02-25-112717-php-vim-c-k-600x385.png" alt=" VIM php函数自动补全" title="2012-02-25 11:27:17-php-vim-c-k" width="600" height="385" class="size-large wp-image-1798" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 VIM php函数自动补全
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;首先下载PHP函数列表文件，将该文件保存在目录 /etc/vim/下:&lt;/p&gt;
&lt;p&gt;也可以自己去选择版本下载：http://svn.php.net/viewvc/phpdoc/doc-base/trunk/funclist.txt&lt;/p&gt;
&lt;p&gt;我这里选的是当前最新的。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;cd /etc/vim/
wget http://svn.php.net/viewvc/phpdoc/doc-base/trunk/funclist.txt?revision=311858&amp;view=co
&lt;/pre&gt;
&lt;p&gt;下载后改名为 php_funclist.txt,名字自己起，一会用的时候记得就行。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mv funclist.txt?revision=311858 php_funclist.txt
&lt;/pre&gt;
&lt;p&gt;然后修改vimrc文件，一般都在刚才的目录下 /etc/vim/&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;cd /etc/vim/
vim vimrc
#在文件末尾添加如下一行，目录对应你刚才的文件所在目录即可。
set dictionary-=/etc/vim/php_funclist.txt dictionary+=/etc/vim/php_funclist.txt
&lt;/pre&gt;
&lt;p&gt;然后保存退出，再进入vim编辑的时候，按下&lt;C-P&gt; (control+p)或者 &lt;C-X&gt;&lt;C-K&gt;，就可以出现php的自动补全啦。&lt;/p&gt;</description></item><item><title>jQuery 延迟 函数 让层延时几秒后消失</title><link>https://fukun.org/archives/02221791.html</link><pubDate>Wed, 22 Feb 2012 09:29:33 +0800</pubDate><guid>https://fukun.org/archives/02221791.html</guid><description>&lt;p&gt;jquery 让一个div延时消失，纯jQuery,不用settimeout，就用jQuery写。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;&amp;lt;script language='javascript' type='text/javascript'&amp;gt;
$(document).ready(
 function()
 {
 /**
 *1.delay函数是jquery 1.4.2新增的函数
 *2.hide函数里必须放一个0,不然延时不起作用
 */
 $('#divid').delay(10000).hide(0);
 }
);
&amp;lt;/script&amp;gt;
&lt;/pre&gt;</description></item><item><title>Ubuntu 使用top/free查看内存占用大的原因</title><link>https://fukun.org/archives/02201800.html</link><pubDate>Mon, 20 Feb 2012 08:16:44 +0800</pubDate><guid>https://fukun.org/archives/02201800.html</guid><description>&lt;div id="attachment_1801" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120225-161832-top-free-ubuntu-memory-big.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/20120225-161832-top-free-ubuntu-memory-big-600x459.png" alt="linux/ubuntu下free/top查看内存占用大的原因" title="20120225-161832-top-free-ubuntu-memory-big" width="600" height="459" class="size-large wp-image-1801" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 linux/ubuntu下free/top查看内存占用大的原因
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;使用free/top查看内存占用的时候，吓了一大跳，机器4GB的内存，显示free空闲的内存只有300多M，查看了下进程，也没有发现占用大内存的应用啊。&lt;/p&gt;
&lt;p&gt;查了些资料，分享给大家。&lt;/p&gt;
&lt;p&gt;其实原理用一句话就可以说明白：&lt;/p&gt;
&lt;p&gt;就是&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;查看结果中used已使用的内存表示总计分配给缓存（包含buffers 与cache ）使用的数量，但其中可能部分缓存并未实际使用。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Memcache 命令行用法</title><link>https://fukun.org/archives/02181817.html</link><pubDate>Sat, 18 Feb 2012 08:44:02 +0800</pubDate><guid>https://fukun.org/archives/02181817.html</guid><description>&lt;p&gt;1、启动Memcache 常用参数&lt;/p&gt;
&lt;pre style="background-color:black;color:#00f000;"&gt;memcached 1.4.3
-p &amp;lt;num&gt; 设置端口号(默认不设置为: 11211)
-U &amp;lt;num&gt; UDP监听端口 (默认: 11211, 0 时关闭) 

-l &amp;lt;ip_addr&gt; 绑定地址 (默认:所有都允许,无论内外网或者本机更换IP，有安全隐患，若设置为127.0.0.1就只能本机访问)
-d 独立进程运行
-u &amp;lt;username&gt; 绑定使用指定用于运行进程 &amp;lt;username&gt;
-m &amp;lt;num&gt; 允许最大内存用量，单位M (默认: 64 MB)
-P &amp;lt;file&gt; 将PID写入文件&amp;lt;file&gt;，这样可以使得后边进行快速进程终止, 需要与 -d 一起使用

&lt;/pre&gt;
&lt;p&gt;如：&lt;/p&gt;
&lt;p&gt;在linux下：./usr/local/bin/memcached -d -u jb-mc -l 192.168.1.197 -m 2048 -p 12121&lt;/p&gt;
&lt;p&gt;在window下：d:App_Servmemcachedmemcached.exe -d RunService -l 127.0.0.1 -p 11211 -m 500&lt;/p&gt;
&lt;p&gt;在windows下注册为服务后运行：&lt;/p&gt;
&lt;p&gt;sc.exe create jb-Memcached binpath= “d:App_Servmemcachedmemcached.exe -d RunService -p 11211 -m 500″ start= auto&lt;/p&gt;
&lt;p&gt;net start jb-Memcached&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>Html5基础结构，Html5基础标签，Html5基础学习</title><link>https://fukun.org/archives/02161776.html</link><pubDate>Thu, 16 Feb 2012 03:04:11 +0800</pubDate><guid>https://fukun.org/archives/02161776.html</guid><description>&lt;div id="attachment_1777" style="width: 317px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120216-HTML5-logo.svg_.png"&gt;&lt;img class=" wp-image-1777 " title="20120216-HTML5-logo.svg" src="//fukun.org/wp-content/uploads/2012/02/20120216-HTML5-logo.svg_.png" alt="Html5 Logo" width="307" height="307" srcset="//fukun.org/wp-content/uploads/2012/02/20120216-HTML5-logo.svg_.png 512w, //fukun.org/wp-content/uploads/2012/02/20120216-HTML5-logo.svg_-150x150.png 150w, //fukun.org/wp-content/uploads/2012/02/20120216-HTML5-logo.svg_-300x300.png 300w" sizes="(max-width: 307px) 100vw, 307px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Html5 Logo
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;1、  声明的变化&lt;!DOCTYPE html &gt;&lt;/p&gt;
&lt;p&gt;2、  指定字符编码的变化&lt;meta charset=&amp;#8221;utf-8&amp;#8243;&gt;，html5中建议使用utf-8&lt;/p&gt;
&lt;p&gt;3、  Html5中允许&lt;p&gt;没有结束符，不算错误&lt;/p&gt;
&lt;p&gt;4、  不允许写结束标记的有：area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr&lt;/p&gt;
&lt;p&gt;5、  可以省略结束标记的元素有：li、dt、dd、p、rt、rp、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th&lt;/p&gt;
&lt;p&gt;6、  可以省略全部标记的元素有：html、head、body、colgroup、tbody&lt;/p&gt;
&lt;p&gt;7、  &lt;input type=text&gt; 之前属性值text是要有双引号的，现在也可以省略&lt;/p&gt;
&lt;p&gt;8、 见html5标记示例&lt;/p&gt;
&lt;p&gt;9、 新增的结构元素section：容器元素。章节、页眉、页脚，可以与h1、h2…结合起来用，标示文档结构。也可用于封装标题+内容，但是没有标题是不当的。当一个容器元素需要被直接定义样式活脚本定义行为时，推荐使用div，而非section。作用：对页面内容进行分块。不要与有着自己的完整的、独立的内容的article元素混淆。总结：①不要将section元素用作设置样式的页面容器，那是div元素的工作。②如果article元素、aside元素、或nav元素更符合使用条件，不要使用section元素。③不要为没有标题的内容区块使用section元素。&lt;/p&gt;
&lt;p&gt;10、新增的结构元素article：块级元素。表示页面中的一块与上下文不像个的独立内容。强调独立性，section强调分段或分块，article强调独立性。&lt;/p&gt;</description></item><item><title>php_memcache.dll php-5.2 for windows 下载</title><link>https://fukun.org/archives/02151765.html</link><pubDate>Wed, 15 Feb 2012 04:30:50 +0800</pubDate><guid>https://fukun.org/archives/02151765.html</guid><description>&lt;p&gt;今天安装Memcache的PHP支持时，发现网上没有Memcache for php 5.2的下载了。只有for php 5.3的。&lt;/p&gt;
&lt;p&gt;下载地址：http://downloads.php.net/pierre/&lt;/p&gt;
&lt;div id="attachment_1766" style="width: 471px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120215-php_memcache.dll_php-5.2-for-windows.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/20120215-php_memcache.dll_php-5.2-for-windows-461x600.jpg" alt="php_memcache.dll for php5.2 for windows下载" title="20120215-php_memcache.dll_php-5.2-for-windows" width="461" height="600" class="size-large wp-image-1766" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 php_memcache.dll for php5.2 for windows下载
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;自己在网上找了一个php_memcache.dll for php5.2 for windows，现在共享给大家：&lt;a href="http://www.digdeeply.org/dd_share/php_memcache_dll-for-php-5.2.zip" title="php_memcache_dll-for-php-5.2.zip" target="_blank"&gt;php_memcache.dll for php5.2 for windows&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载后将压缩包内的php_memcache.dll放入PHP的ext目录下，并在php.ini内添加如下一行，即可&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;extension=php_memcache.dll
&lt;/pre&gt;</description></item><item><title>WP7新机中兴Tania英国低价开卖 不足2000元–有木有代购啊</title><link>https://fukun.org/archives/02151758.html</link><pubDate>Wed, 15 Feb 2012 02:01:38 +0800</pubDate><guid>https://fukun.org/archives/02151758.html</guid><description>&lt;p&gt;有人说中兴Tania将在国内掀起WP7系统手机的普及风暴，其原因在于这款手机足够的低廉的价格。根据海外媒体的报道，原本可能延迟发售的中兴Tania已经在英国市场开卖，而手机的含税价格仅为198.97英镑，约合人民币1960元左右，有着惊人的超高性价比。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;售价不足2000元&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;根据海外媒体的报道，中兴Tania原本计划在本周登陆英国市场，但随后又传出可能要延迟一周的消息，好在最终传闻并没有成真，中兴Tania不仅已经在英国如约上市，而且手机的售价要比过去更加的便宜。目前在英国市场最低报价仅为198.97英镑，约合人民币1960元左右，绝对算得上是当前售价最便宜的Windows Phone系统手机。&lt;/p&gt;
&lt;p&gt;不仅如此，中兴Tania还将通过诸多主流渠道商发货，其中包括Virgin Media, Go Mobile 等零售商，其合约定制价也仅为10-20英镑。而在过去，中兴Tania预购价格（含税）为249.99英镑，约合人民币2480元左右，差不多50英镑的降价幅度，无疑将让诺基亚Lumia710等机型面临极大的竞争压力。&lt;/p&gt;
&lt;div id="attachment_1759" style="width: 278px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120215-zte-wp7-phone-Tania_550x550_0.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/20120215-zte-wp7-phone-Tania_550x550_0.jpg" alt="中兴Tania - 不足2000元的WP7中端机" title="20120215-zte-wp7-phone-Tania_550x550_0" width="268" height="500" class="size-full wp-image-1759" srcset="//fukun.org/wp-content/uploads/2012/02/20120215-zte-wp7-phone-Tania_550x550_0.jpg 268w, //fukun.org/wp-content/uploads/2012/02/20120215-zte-wp7-phone-Tania_550x550_0-161x300.jpg 161w" sizes="(max-width: 268px) 100vw, 268px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 中兴Tania - 不足2000元的WP7中端机
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>什么是viewport—meta标签的viewport控制在移动设备上的布局,缩放</title><link>https://fukun.org/archives/02141770.html</link><pubDate>Tue, 14 Feb 2012 06:40:06 +0800</pubDate><guid>https://fukun.org/archives/02141770.html</guid><description>&lt;p&gt;&lt;strong&gt;什么是Viewport&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;手机浏览器是把页面放在一个虚拟的“窗口”（viewport）中，通常这个虚拟的“窗口”（viewport）比屏幕宽，这样就不用把每个网页挤到很小的窗口中（这样会破坏没有针对手机浏览器优化的网页的布局），用户可以通过平移和缩放来看网页的不同部分。移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag，让网页开发者来控制 viewport 的大小和缩放，其他手机浏览器也基本支持。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Viewport 基础&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一个常用的针对移动网页优化过的页面的 viewport meta 标签大致如下：&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0, user-scalable=yes"/&amp;gt;
&lt;/pre&gt;
&lt;p&gt;width：控制 viewport 的大小，可以指定的一个值，如果 600，或者特殊的值，如 device-width 为设备的宽度（单位为缩放为 100% 时的 CSS 的像素）。&lt;/p&gt;
&lt;p&gt;height：和 width 相对应，指定高度。&lt;/p&gt;
&lt;p&gt;initial-scale：初始缩放比例，也即是当页面第一次 load 的时候缩放比例。&lt;/p&gt;
&lt;p&gt;maximum-scale：允许用户缩放到的最大比例。&lt;/p&gt;
&lt;p&gt;minimum-scale：允许用户缩放到的最小比例。&lt;/p&gt;
&lt;p&gt;user-scalable：用户是否可以手动缩放&lt;/p&gt;</description></item><item><title>小米手机的疯狂和被边缘化风险</title><link>https://fukun.org/archives/02131756.html</link><pubDate>Mon, 13 Feb 2012 14:26:26 +0800</pubDate><guid>https://fukun.org/archives/02131756.html</guid><description>&lt;p&gt;现在说“疯狂的小米”一点都不夸张，小米依托高性价比的配置和强大的影响能力，迅速完成了一个新的手机品牌的建立，小米手机的团队比国内其他手机的团队更加互联网化。小米很好地建设了在线用户和粉丝社区，同时将渠道完全电商化，在这一点上实现了规模口碑传播和饥渴营销的基础铺设，加上其高管团队过去就是行业明星，小米创立之初就被IT互联网行业的从业者们给予极大的关注。&lt;/p&gt;
&lt;p&gt;CEO雷军是著名的互联网投资人，创建过卓越网，也一手将金山公司壮大，总裁林斌是前谷歌中国高管，整个高管团队都是著名公司的高管背景，这些是国内手机同行难以比拟的。雷军更是“雷布斯”身份进行宣传引导，给网民一种小米就是中国的iphone，这种品牌定位和输出方式非常有效，因为乔布斯实在是太出名、太受人尊敬和崇拜了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;小米手机的疯狂&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;到目前已经售出二三十万部小米手机，不到半年的时间，而且多数是在线排队预订，苹果实现了粉丝在实体店的排队，小米则在线上实现了排队，受欢迎程度不言而喻。作为成立时间很短的小米，自然让人想起了魅族，因为魅族团队比小米更早，而且一直以追求完美体验而出名，现在小米的推广方式和过去魅族的推广方式如出一辙，只是魅族没有雷军这样有号召力的领袖，难以快速崛起。&lt;/p&gt;
&lt;p&gt;最近，小米声称将建设千人规模的电商团队，并由副总黎万强负责电商方面，大家可以想一下如果只卖小米手机就算一年卖出200万部，也用不着这么大的电商团队规模，笔者认为小米手机周边产品也难以支撑这么大的电商团队，哪怕500人规模，也够大的，除非生产商不给他们进行组装。智能手机市场高速发展，但是小米进入二三线城市难度较大，而三星、诺基亚手机在国内智能机市场依旧是绝对领导者，小米品牌尚嫩，还不足以全面和三星等巨头抗衡。&lt;/p&gt;</description></item><item><title>Android游戏开发可能遇到、需要处理的3个问题及解决方案</title><link>https://fukun.org/archives/02131750.html</link><pubDate>Mon, 13 Feb 2012 06:21:59 +0800</pubDate><guid>https://fukun.org/archives/02131750.html</guid><description>&lt;p&gt;在Android上制作出一款游戏很容易，但在诸如Android这样移动、多任务、多核和多目标的系统上制作出一款优秀作品着实有些棘手。即便是最优秀的开发者，也会在他们与Android系统和其他应用互动时频繁犯错。这些错误不会影响到游戏可玩性的质量，但会在某种程度上影响用户体验的质量。&lt;/p&gt;
&lt;p&gt;真正优秀的Android游戏知道如何产生良好的用户体验，也就是如何无缝地与Android设备上运行的应用系统、服务和UI特征相配合。在这个包含多个部分的系列博文里，专攻游戏Android Developer Relations的工程师将解析如何让你的游戏更加出众。&lt;/p&gt;
&lt;p&gt;导航和生命周期&lt;/p&gt;
&lt;p&gt;Android用户习惯于使用后退键。我们期望音量选项能够设计得更直观。我们期望主界面键的作用能够同Android导航范例相一致。有时，我们甚至期望菜单键能够发挥一定的作用。&lt;/p&gt;
&lt;div id="attachment_1751" style="width: 435px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120213-v880-android-pic.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/20120213-v880-android-pic.jpg" alt=" Android游戏开发可能遇到、需要处理的3个问题" title="20120213-v880-android-pic" width="425" height="375" class="size-full wp-image-1751" srcset="//fukun.org/wp-content/uploads/2012/02/20120213-v880-android-pic.jpg 425w, //fukun.org/wp-content/uploads/2012/02/20120213-v880-android-pic-300x265.jpg 300w" sizes="(max-width: 425px) 100vw, 425px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Android游戏开发可能遇到、需要处理的3个问题
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Linux-Unix 修改系统时间 date</title><link>https://fukun.org/archives/02111822.html</link><pubDate>Sat, 11 Feb 2012 09:04:09 +0800</pubDate><guid>https://fukun.org/archives/02111822.html</guid><description>&lt;p&gt;我们一般使用“date -s”命令来修改系统时间。首先需要su切换到root操作用户模式,然后分两步操作.&lt;/p&gt;
&lt;p&gt;比如将系统时间设定成2012年2月11日的命令如下：&lt;/p&gt;
&lt;p&gt;　　&lt;/p&gt;
&lt;pre style="background-color:black;color:#00f000;"&gt;#date -s 02/11/2012
2012年 02月 11日 星期六 00:00:00 CST
　　&lt;/pre&gt;
&lt;p&gt;　　接着将系统时间设定成上午10点52分30秒的命令如下：&lt;/p&gt;
&lt;p&gt;　　&lt;/p&gt;
&lt;pre style="background-color:black;color:#00f000;"&gt;#date -s 10:52:30
2012年 02月 11日 星期六 10:52:30 CST
　　&lt;/pre&gt;
&lt;p&gt;也可以用以下两个命令来写&lt;/p&gt;
&lt;pre style="background-color:black;color:#00f000;"&gt;date 021110522012(月日时分年)（完整书写）
date 021110522012.30(月日时分年.秒)
&lt;/pre&gt;</description></item><item><title>一个黑客的自白：黑客暴利生意 教主20岁赚2000万</title><link>https://fukun.org/archives/02091739.html</link><pubDate>Thu, 09 Feb 2012 02:21:16 +0800</pubDate><guid>https://fukun.org/archives/02091739.html</guid><description>&lt;p&gt;　他们日进万金，挥金如土，纸醉金迷，他们是隐秘黑客产业链的暴盈者，他们是一群没有信仰的金钱奴隶。&lt;/p&gt;
&lt;p&gt;2011年12月21日上午，有黑客在网上公开了中国最大的开发者社区CSDN网站的用户数据库，600余万个注册邮箱账号和与之对应的明文密码泄露；12月22日，网上接着曝出人人网、天涯、开心网、多玩、世纪佳缘、珍爱网、美空网、百合网、178、7K7K等知名网站的用户账号密码遭公开泄露 堪称中国互联网史上最大规模的用户信息泄密事件，再次让大家对黑客以及其背后的隐秘的产业链产生了浓厚的兴趣。以下为一个黑客的口述。&lt;/p&gt;
&lt;div id="attachment_1740" style="width: 434px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2012/02/20120209-hacker-B.png"&gt;&lt;img src="//fukun.org/wp-content/uploads/2012/02/20120209-hacker-B.png" alt="口述 - 前黑客 B先生" title="20120209-hacker-B" width="424" height="550" class="size-full wp-image-1740" srcset="//fukun.org/wp-content/uploads/2012/02/20120209-hacker-B.png 424w, //fukun.org/wp-content/uploads/2012/02/20120209-hacker-B-231x300.png 231w" sizes="(max-width: 424px) 100vw, 424px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 口述 - 前黑客 B先生
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Javascript cookie使用详解</title><link>https://fukun.org/archives/02081736.html</link><pubDate>Wed, 08 Feb 2012 05:42:41 +0800</pubDate><guid>https://fukun.org/archives/02081736.html</guid><description>&lt;p&gt;&lt;strong&gt;设置cookie&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;每个cookie都是一个名/值对，可以把下面这样一个字符串赋值给document.cookie：&lt;/p&gt;
&lt;p&gt;document.cookie=”userId=828″;&lt;/p&gt;
&lt;p&gt;如果要一次存储多个名/值对，可以使用分号加空格（; ）隔开，例如：&lt;/p&gt;
&lt;p&gt;document.cookie=”userId=828; userName=hulk”;&lt;/p&gt;
&lt;p&gt;在cookie的名或值中不能使用分号（;）、逗号（,）、等号（=）以及空格。在cookie的名中做到这点很容易，但要保存的值是不确定的。如何来存 储这些值呢？方法是用escape()函数进行编码，它能将一些特殊符号使用十六进制表示，例如空格将会编码为“%20”，从而可以存储于cookie值 中，而且使用此种方案还可以避免中文乱码的出现。例如：&lt;/p&gt;
&lt;p&gt;document.cookie=”str=”+escape(“I love ajax”);&lt;/p&gt;
&lt;p&gt;相当于：&lt;/p&gt;
&lt;p&gt;document.cookie=”str=I%20love%20ajax”;&lt;/p&gt;
&lt;p&gt;当使用escape()编码后，在取出值以后需要使用unescape()进行解码才能得到原来的cookie值，这在前面已经介绍过。&lt;/p&gt;
&lt;p&gt;尽管document.cookie看上去就像一个属性，可以赋不同的值。但它和一般的属性不一样，改变它的赋值并不意味着丢失原来的值，例如连续执行下面两条语句：&lt;/p&gt;
&lt;p&gt;document.cookie=”userId=828″;&lt;/p&gt;
&lt;p&gt;document.cookie=”userName=hulk”;&lt;/p&gt;
&lt;p&gt;这时浏览器将维护两个cookie，分别是userId和userName，因此给document.cookie赋值更像执行类似这样的语句：&lt;/p&gt;
&lt;p&gt;document.addcookie(“userId=828”);&lt;/p&gt;
&lt;p&gt;document.addcookie(“userName=hulk”);&lt;/p&gt;
&lt;p&gt;事实上，浏览器就是按照这样的方式来设置cookie的，如果要改变一个cookie的值，只需重新赋值，例如：&lt;/p&gt;
&lt;p&gt;document.cookie=”userId=929″;&lt;/p&gt;
&lt;p&gt;这样就将名为userId的cookie值设置为了929。&lt;/p&gt;</description></item><item><title>mysql like 查询不区分大小写</title><link>https://fukun.org/archives/02061734.html</link><pubDate>Mon, 06 Feb 2012 02:38:02 +0800</pubDate><guid>https://fukun.org/archives/02061734.html</guid><description>&lt;p&gt;mysql的like查询默认是不区分大小写的 如：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;select * from table_name where a like 'a%'
select * from table_name where a like 'A%'
&lt;/pre&gt;
&lt;p&gt;效果是一样的。&lt;/p&gt;
&lt;p&gt;要让mysql的like查询区分大小写，可以这样：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;select * from table_name where binary a like 'a%'
select * from table_name where binary a like 'A%'
&lt;/pre&gt;
&lt;p&gt;也可以在建表时，加以标识binary，也可实现like查询时区分大小写：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;create table table_name(
 a varchar(20) binary 
)
&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>松下预计本财年净亏100亿美元 为创立来最差</title><link>https://fukun.org/archives/02051732.html</link><pubDate>Sun, 05 Feb 2012 15:34:08 +0800</pubDate><guid>https://fukun.org/archives/02051732.html</guid><description>&lt;p&gt;据国外媒体报道，松下日前宣布，由于受泰国洪水及电视机需求放缓的影响，预测该公司本财年亏损达到7800亿日元（约合100亿美元），创下公司成立以来的最大亏损。&lt;/p&gt;
&lt;p&gt;本次修改后的业绩预测已包括商誉减记，大大高于去年10月份预测的4200亿日元亏损。&lt;/p&gt;
&lt;p&gt;松下总裁大坪文雄(Fumio Ohtsubo)正通过裁员、向海外转移生产并尝试将公司打造成太阳能面板及充电池领导企业等方式应对电视机市场竞争不断加剧的局面。受泰国洪水以及日本大地震的影响，索尼、松下以及夏普等日本电子制造业巨头先后上调了本财年的亏损预期。&lt;/p&gt;
&lt;p&gt;日本资产管理公司Fukoku Capital Management首席执行官 Yuuki Sakurai表示：“目前看不到消费类电子产品市场改善的迹象。在消费者需求与生产商的生产之间存在矛盾。”&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>细谈HTML 5新增的元素</title><link>https://fukun.org/archives/02011744.html</link><pubDate>Wed, 01 Feb 2012 08:14:30 +0800</pubDate><guid>https://fukun.org/archives/02011744.html</guid><description>&lt;p&gt;HTML 5是一个妥协方案，虽不激进，但更能推动技术的继续进步。没有命名空间，元素也不要求闭合（当然这并不是优点），浏览器也可以宽大处理一些错误。一切沿袭上个世纪HTML 4的做法。&lt;/p&gt;
&lt;p&gt;对于HTML的渲染，浏览器一直停留在1999年的水平。为此，HTML 5是一个实用主义方案，这样不仅可以继续处理这么多年来散落在世界各个角落的HTML，也可以让浏览器厂商更容易添加新特性。这就叫degrade gracefully（优雅降级）。让我们来看看HTML 5增加的一些新元素。&lt;/p&gt;
&lt;p&gt;HTML 5结构元素&lt;/p&gt;
&lt;p&gt;这真是大快人心。目前，我们定义结构只能通过一个“万能”的div, 试图通过设置它的特性id的值如header, footer, sidebar等来分别表达头部，底部或者侧栏等。有了它们，代码编写者不再需要为id的命名费尽心思，对于手机、阅读器等设备更有语义的好处。HTML 5增加了新的结构元素来表达这些最常用的结构：&lt;/p&gt;
&lt;p&gt;◆section: 这可以表达书本的一部分或一章，或者一章内的一节&lt;/p&gt;
&lt;p&gt;◆header: 页面主体上的头部。并非head元素&lt;/p&gt;
&lt;p&gt;◆footer: 页面的底部（页脚），可以是一封邮件签名的所在&lt;/p&gt;
&lt;p&gt;◆nav: 到其他页面的链接集合&lt;/p&gt;
&lt;p&gt;◆article: 诸如blog, 杂志，纲要等之中的一条独立记录。&lt;/p&gt;
&lt;p&gt;举个例子，一个blog的首页，用HTML 5写的话，可以是这样（有省略）：&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;&amp;lt;!DOCTYPE HTML&amp;gt;
 &amp;lt;HTML&amp;gt; 
&amp;lt;head&amp;gt; &amp;lt;title&amp;gt;realazy&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt; 
&amp;lt;body&amp;gt; 
&amp;lt;header&amp;gt; 
 &amp;lt;h1&amp;gt;Realazy&amp;lt;/h1&amp;gt;&amp;lt;/header&amp;gt; 
&amp;lt;section&amp;gt; 
&amp;lt;article&amp;gt; 
&amp;lt;h2&amp;gt;&amp;lt;a href="http://realazy.org/blog" mce_href="http://realazy.org/blog"&amp;gt;标题&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt; 
 &amp;lt;p&amp;gt;内容在此...（省略n字）&amp;lt;/p&amp;gt; &amp;lt;/article&amp;gt; &amp;lt;article&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a href="http://realazy.org/blog" mce_href="http://realazy.org/blog"&amp;gt;标题2&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt; &amp;lt;p&amp;gt;内容2在此...（省略n字）&amp;lt;/p&amp;gt;
&amp;lt;/article&amp;gt; ... 
&amp;lt;/section&amp;gt; 
&amp;lt;footer&amp;gt; 
&amp;lt;nav&amp;gt; &amp;lt;ul&amp;gt; 
 &amp;lt;li&amp;gt;&amp;lt;a href="http://realazy/blog" mce_href="http://realazy/blog"&amp;gt;导航1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;&amp;lt;a href="http://realazy/blog" mce_href="http://realazy/blog"&amp;gt;导航2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt; ... &amp;lt;/ul&amp;gt; 
 &amp;lt;/nav&amp;gt; 
 &amp;lt;p&amp;gt;© 2007 realazy&amp;lt;/p&amp;gt; 
&amp;lt;/footer&amp;gt; 
&amp;lt;/body&amp;gt; 
&amp;lt;/HTML&amp;gt; 
&lt;/pre&gt;</description></item><item><title>PHP导出EXCEL，header怎么写？PHP如何导出excel文件?</title><link>https://fukun.org/archives/01301729.html</link><pubDate>Mon, 30 Jan 2012 06:14:51 +0800</pubDate><guid>https://fukun.org/archives/01301729.html</guid><description>&lt;p&gt;PHP导出excel时，只需要写入以下header,然后把内容用html的&lt;table&gt;&lt;/table&gt;画出表格即可：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");

&lt;/pre&gt;</description></item><item><title>什么是流处理器，流处理器有什么用？A卡与N卡流处理器数量比较</title><link>https://fukun.org/archives/01291727.html</link><pubDate>Sun, 29 Jan 2012 05:11:36 +0800</pubDate><guid>https://fukun.org/archives/01291727.html</guid><description>&lt;p&gt;中关村卖场中，一位装机技术员侃侃而谈：“ NVIDIA最新的GTX295显卡核心只有2*240个流处理器， ATI的HD5970显卡核心却有3200个流处理器，你要最高性能的显卡，当然要选HD5970显卡。”&lt;/p&gt;
&lt;p&gt;AMD-ATI显卡（以下简称A卡）和NVIDIA（以下简称N卡）在流处理器数量上的巨大差异给许多读者造成巨大的困惑。其实，这个情况和不同厂商、相当于CPU的二级缓存数量存在差异情况类似，简单来说就是“不同架构的GPU，流处理器的作用不尽相同，不能直接比较数量。”深入的解释请看下文说明：&lt;/p&gt;
&lt;p&gt;早在微软推出的DirectX 7当中就曾经提出过一个概念——T&amp;amp;L（中文名称是坐标转换和光源），它可以看做是流处理器的鼻祖，随着显卡核心芯片技术的发展，在DirectX 8中。由微软首次提出了Shader的概念。并且将Shader分为Vertex Shader（顶点着色器，又称VS单元）和Pixel Shader（像素着色器，又称PS单元）。&lt;/p&gt;</description></item><item><title>酷6结盟YouTube 国内原创内容走向国际市场</title><link>https://fukun.org/archives/01181707.html</link><pubDate>Wed, 18 Jan 2012 02:04:39 +0800</pubDate><guid>https://fukun.org/archives/01181707.html</guid><description>&lt;p&gt;北京时间1月17日消息，据国外媒体报道，酷6传媒（纳斯达克证券代码：KUTV）周二宣布，该公司已同知名国际视频分享网站YouTube签署最终合作协议。依据双方达成的协议，酷6传媒的国际用户将能够通过YouTube运营的新频道观看到来自中国的原创视频内容。&lt;/p&gt;
&lt;p&gt;酷6传媒在当天开盘前宣布，已与视频网站Youtube达成最终协议，允许酷6传媒海外用户通过Youtube提供的一个新频道浏览国内的原创视频。受该消息刺激，酷6传媒股价当天开盘即大幅上扬，盘中涨幅一度高达146%。截至收盘，酷6传媒报收于每股3.30美元，上涨1.92美元，涨幅为139.1%。&lt;/p&gt;
&lt;p&gt;酷6传媒表示，这一伙伴关系将准许公司内容扩张至国际市场。酷6传媒计划招募一支团队来运营这一频道，以提升公司在国际市场的用户数量和营收。&lt;/p&gt;</description></item><item><title>wordpress更新后修改</title><link>https://fukun.org/archives/01161711.html</link><pubDate>Mon, 16 Jan 2012 02:39:15 +0800</pubDate><guid>https://fukun.org/archives/01161711.html</guid><description>&lt;p&gt;由于自己添加了一些功能，每次wordpress更新后，需要做如下修改:&lt;/p&gt;
&lt;p&gt;更新后，修改:&lt;/p&gt;
&lt;p&gt;/wp-includes/general-template.php – 415行开始添加：&lt;/p&gt;
&lt;pre class="brush: php; first-line: 415; title: Example; notranslate" title="Example"&gt;case 'constblogdescription':
	$output = get_option('constblogdescription');
	break;
&lt;/pre&gt;</description></item><item><title>PHP调用基于Web服务的SOAP应用程序 WSDL</title><link>https://fukun.org/archives/01131717.html</link><pubDate>Fri, 13 Jan 2012 08:47:04 +0800</pubDate><guid>https://fukun.org/archives/01131717.html</guid><description>&lt;p&gt;示例代码(调用香港的WSDL服务发送短信,为了安全，参数随便改了个，这个不能用的，大家不要用这个做例子)，仅供参考用法：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
	include "nusoap.php";
	$soap = new soapclient("http://wsp3.three.com.hk/axis/services/messaging?wsdl");
	$soap-&amp;gt;soap_defencoding = 'utf-8';
	$soap-&amp;gt;xml_encoding = 'utf-8'; 
	
	$AccountID = 'weibiosinasmstest';
	$UserID = "sina-weibo";
	$Passwd = "weibo-sina";
	$ServiceID = "SMS";

	//以下是检查已发短信状态的接口 , $reference是发送短信接口返回值，表示短信ID
	$reference = "4651170";
	
	$result = $soap-&amp;gt;__soapCall('getSMSByReference',array($AccountID, $UserID, $Passwd, $ServiceID, $reference));

	var_dump($result);
	/*返回结果：
		string(178) "&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&amp;lt;response&amp;gt;&amp;lt;result code="1000" datetime="20110803155234" desc="Message successfully delivered to the HTHK." reference="4631624"/&amp;gt;&amp;lt;/response&amp;gt;"

		code:状态代码
		datetime:发送时间
		desc:描述
		reference:短信ID
	*/
&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>PHP获取客户端IP，代理服务器IP</title><link>https://fukun.org/archives/01121725.html</link><pubDate>Thu, 12 Jan 2012 09:31:56 +0800</pubDate><guid>https://fukun.org/archives/01121725.html</guid><description>&lt;p&gt;共有如下几类情况：&lt;/p&gt;
&lt;p&gt;一、没有使用代理服务器的情况：&lt;/p&gt;
&lt;p&gt;REMOTE_ADDR = 您的 IP&lt;/p&gt;
&lt;p&gt;HTTP_VIA = 没数值或不显示&lt;/p&gt;
&lt;p&gt;HTTP_X_FORWARDED_FOR = 没数值或不显示&lt;/p&gt;
&lt;p&gt;二、使用透明代理服务器的情况：【Transparent Proxies】&lt;/p&gt;
&lt;p&gt;REMOTE_ADDR = 最后一个代理服务器 IP&lt;/p&gt;
&lt;p&gt;HTTP_VIA = 代理服务器 IP&lt;/p&gt;
&lt;p&gt;HTTP_X_FORWARDED_FOR = 您的真实 IP ，经过多个代理服务器时，这个值类似如下：211.98.182.163, 211.98.182.163, 211.129.72.215。&lt;/p&gt;
&lt;p&gt;透明代理服务器还是将您的信息转发给您的访问对象，无法达到隐藏真实身份的目的。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>读书-《MongoDB The Definitive Guide》-0110 and MongoDB封面动物是什么</title><link>https://fukun.org/archives/01101703.html</link><pubDate>Tue, 10 Jan 2012 08:06:15 +0800</pubDate><guid>https://fukun.org/archives/01101703.html</guid><description>&lt;p&gt;《MongoDB The Definitive Guide》&lt;/p&gt;
&lt;p&gt;《MongoDB权威指南》&lt;/p&gt;
&lt;p&gt;All Finished.&lt;/p&gt;</description></item><item><title>Firefox必添加的几个扩展组件</title><link>https://fukun.org/archives/01091699.html</link><pubDate>Mon, 09 Jan 2012 08:54:55 +0800</pubDate><guid>https://fukun.org/archives/01091699.html</guid><description>&lt;p&gt;1、Firebug&lt;/p&gt;
&lt;p&gt;调试利器&lt;/p&gt;
&lt;p&gt;2、FireGestures&lt;/p&gt;
&lt;p&gt;强大的鼠标手势&lt;/p&gt;
&lt;p&gt;3、HTML Regex Data Extractor&lt;/p&gt;
&lt;p&gt;正则表达式匹配，抓站神马的最合适了。&lt;/p&gt;
&lt;p&gt;4、Tamer Data&lt;/p&gt;
&lt;p&gt;截取请求，抓站、改POST参数~~&lt;/p&gt;
&lt;p&gt;5、NetVideoHunter&lt;/p&gt;
&lt;p&gt;直接下载视频，如优酷、土豆、乐视等。。Youtobe也可以，可惜国内无用。。&lt;/p&gt;</description></item><item><title>黑客组织：将把索尼从互联网上抹去</title><link>https://fukun.org/archives/01061695.html</link><pubDate>Fri, 06 Jan 2012 13:33:25 +0800</pubDate><guid>https://fukun.org/archives/01061695.html</guid><description>&lt;p&gt;据国外媒体报道，知名黑客组织Anonymous已经公开发布信息，将对索尼及旗下艺人发动网络攻击，以抗议索尼支持美国国会提出的《网络反盗版法案》（SOPA）。&lt;/p&gt;
&lt;p&gt;遭受大量用户逃离的域名服务提供商GoDaddy似乎并不是唯一一家因为支持《网络反盗版法案》而受到威胁的公司，索尼也因为支持这项法案而受到了黑客团体Anonymous的威胁。事实上，两周之前，Anonymous就发布了一则关于《网络反盗版法案》的信息，称“我们会用抗议令互联网蒙羞”。&lt;/p&gt;
&lt;p&gt;Anonymous近日在视频网站YouTube上发布了一则针对索尼，以及贾斯汀·比伯（Justin Bieber）和Lady Gaga等索尼旗下艺术家的信息，威胁称如果索尼继续支持《网络反盗版法案》，Anonymous就将发起黑客攻击。&lt;/p&gt;</description></item><item><title>关于MongoDB的全局锁</title><link>https://fukun.org/archives/01061681.html</link><pubDate>Fri, 06 Jan 2012 01:53:57 +0800</pubDate><guid>https://fukun.org/archives/01061681.html</guid><description>&lt;p&gt;对MongoDB有所了解的人都知道，MongoDB有一个让人头疼的全局锁（读写锁，允许并发读，而写会阻塞所有的读写），要命的是这个锁不是表级的，不是库级的，而是整个Server级别的，这让人听起来是不是非常的蛋疼。&lt;/p&gt;
&lt;p&gt;在2.0版本以前，这一问题一直没有得到解决，于是有人提出，在可预见某个update操作的记录可能在磁盘上时，为了减少写锁占用的时间，可以采用先读后写的方式，通过先读一次，将要操作的记录加载到内存中，再进行内存中的update，这样写锁就不包括将数据从磁盘加载到内存的时间了。&lt;/p&gt;
&lt;p&gt;在可预见数据冷热的情况下，这种操作能够有一定的效果，但是很明显，这种变态的方法不应该是一个终极解决方案。&lt;/p&gt;
&lt;p&gt;值得庆幸的是，在2.0版本中，MongoDB宣称有很大程度的并发性能提升，而这一提升的基础正是解决了这个全局锁的问题。&lt;/p&gt;
&lt;p&gt;解决的方法并不是通过减少锁粒度来解决，虽然collection级别的锁机制也正在开发中。（SERVER-1240）&lt;/p&gt;
&lt;p&gt;解决方法是通过对一些可能造成长时间锁占用的操作进行锁抑制。比如和我们上面的方法类似，在进行update操作时，如果发现需要更新的记录在磁盘上，那么这个锁就不会一直占用，而是等到将数据从磁盘加载到内存后再添加写锁进行update。&lt;/p&gt;
&lt;p&gt;而同理，对于其它一些可能耗时比较长的操作也可以采用类似的方法，通过将长时间占用的全局锁拆分成多个细粒度的小锁来使需要获取锁来进行的操作能够交错的执行，从而避免一夫当关万夫莫开的情况，主要包括下面一些操作：&lt;/p&gt;
&lt;p&gt;查询操作&lt;/p&gt;
&lt;p&gt;批量更新操作&lt;/p&gt;
&lt;p&gt;批量删除操作&lt;/p&gt;
&lt;p&gt;批量insert写入操作&lt;/p&gt;</description></item><item><title>连接MongoDB，认证登陆MongoDB.–php</title><link>https://fukun.org/archives/01041688.html</link><pubDate>Wed, 04 Jan 2012 10:21:58 +0800</pubDate><guid>https://fukun.org/archives/01041688.html</guid><description>&lt;h3 id="例子"&gt;例子：&lt;/h3&gt;
&lt;p&gt;以认证模式启动本地MongoDB,限定只能本地登陆，需要认证:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mongod -dbpath d:mongodb1.8.2db --bind_ip localhost --auth
&lt;/pre&gt;
&lt;p&gt;默认连接到本地服务器的默认端口:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mongodb://localhost&lt;/pre&gt;
&lt;p&gt;以用户名’fred’和密码’foobar’连接并登录到admin数据库:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mongodb://fred:foobar@localhost&lt;/pre&gt;
&lt;p&gt;以用户名’fred’和密码’foobar’连接并登录到baz数据库:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mongodb://fred:foobar@localhost/baz&lt;/pre&gt;</description></item><item><title>新网站如何向搜索引擎提交网址,如何让搜索引擎收录到自己的网站</title><link>https://fukun.org/archives/01011675.html</link><pubDate>Sun, 01 Jan 2012 12:59:23 +0800</pubDate><guid>https://fukun.org/archives/01011675.html</guid><description>&lt;p&gt;百度、谷歌对新网站的抓取与收录是需要一定时间，百度一般在15-30天，相对谷歌会快些，一般在一周左右。其实大家也可以主动向百度、谷歌等搜索引擎提交自已的网址。&lt;/p&gt;
&lt;p&gt;只要主动向搜索引擎提交你的网站首页，就可以加快你的网站被收录的速度，最适合新网站，或者换了域名的网站。&lt;/p&gt;
&lt;p&gt;以下是各大搜索引擎网站登录进口：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;百度网站收录提交进口：&lt;a href="http://www.baidu.com/search/url_submit.html" target="_blank"&gt;&lt;a href="http://www.baidu.com/search/url_submit.html"&gt;http://www.baidu.com/search/url_submit.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Google网站收录提交进口：&lt;a href="http://www.google.com/addurl/" target="_blank"&gt;&lt;a href="http://www.google.com/addurl/"&gt;http://www.google.com/addurl/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Yahoo网站收录提交进口：&lt;a href="http://search.help.cn.yahoo.com/h4_4.html" target="_blank"&gt;&lt;a href="http://search.help.cn.yahoo.com/h4_4.html"&gt;http://search.help.cn.yahoo.com/h4_4.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;搜狗网站收录提交进口：&lt;a href="http://www.sogou.com/feedback/urlfeedback.php" target="_blank"&gt;&lt;a href="http://www.sogou.com/feedback/urlfeedback.php"&gt;http://www.sogou.com/feedback/urlfeedback.php&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Soso网站收录提交进口：&lt;a href="http://www.soso.com/help/usb/urlsubmit.shtml" target="_blank"&gt;&lt;a href="http://www.soso.com/help/usb/urlsubmit.shtml"&gt;http://www.soso.com/help/usb/urlsubmit.shtml&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>PHP.ini中一些配置选项的说明</title><link>https://fukun.org/archives/12311672.html</link><pubDate>Sat, 31 Dec 2011 06:51:21 +0800</pubDate><guid>https://fukun.org/archives/12311672.html</guid><description>&lt;p style="line-height: 2;"&gt;
  PHP的配置会影响你所写代码的行为以及你使用的技巧, PHP的配置主要由一个名为php.ini的文件所指定。该文件包含很多配置选项，每一项都会对PHP产生非常特定的影响。如果该文件不存在，或者该文件中的某选项不存在，则会使用默认值。
&lt;/p&gt;
&lt;p style="line-height: 2;"&gt;
   如果你不知道php.ini文件所在的位置，你可以使用phpinfo( )来确定PHP中对该文件路径的定义：
&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
 phpinfo(); 
?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;显示的结果中“Loaded Configuration File ”显示了php.ini的完整路径。如果只显示了路径（没有文件名），这就意味着PHP无法在所示路径找到php.ini文件。&lt;/p&gt;
&lt;p&gt;该文件包含的自身说明非常好，因此你可以阅读该文件并选择适合你的配置选项。而手册更是详细，所以在你需要某一选项的更多信息时，可以阅读这个：http://hk.php.net/manual/zh/ini.php&lt;/p&gt;</description></item><item><title>如何通过php判断操作系统类型 linux windows</title><link>https://fukun.org/archives/12301668.html</link><pubDate>Fri, 30 Dec 2011 06:29:56 +0800</pubDate><guid>https://fukun.org/archives/12301668.html</guid><description>&lt;p&gt;php中有许多系统预定义的变量，通过判断它们的值就可以轻松的判断出系统是 windows还是*unix。&lt;/p&gt;
&lt;p&gt;其中相关的函数或者预定义变量如下:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;php_uname();&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;PHP_OS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;DIRECTORY_SEPARATOR&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;PHP_SHLIB_SUFFIX&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;PATH_SEPARATOR&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;判断操作系统的示例PHP程序：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;if(PATH_SEPARATOR==':'){
//linux
echo "linux";
}else{
//windows
echo "winnt";
}
&lt;/pre&gt;</description></item><item><title>php-mail()函数发送UTF-8邮件-中文标题乱码</title><link>https://fukun.org/archives/12291665.html</link><pubDate>Thu, 29 Dec 2011 04:41:33 +0800</pubDate><guid>https://fukun.org/archives/12291665.html</guid><description>&lt;p&gt;当用php的mail（）函数发送邮件时，如果包含中文，标题产生乱码，需要做以下处理即可解决：&lt;/p&gt;
&lt;p&gt;先用函数base64_encode() — 使用 MIME base64 对标题数据进行编码&lt;/p&gt;
&lt;p&gt;标题字符串前加编码类型例如： =?UTF-8?B?&lt;/p&gt;
&lt;p&gt;标题字符串后加：?=&lt;/p&gt;
&lt;p&gt;如：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$subject = '邮件标题中文-php-mail()函数';
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
&lt;/pre&gt;
&lt;p&gt;这样就不会乱码了。&lt;/p&gt;</description></item><item><title>Piwik 统计系统 中文邮件发送 bug</title><link>https://fukun.org/archives/12231660.html</link><pubDate>Fri, 23 Dec 2011 08:33:03 +0800</pubDate><guid>https://fukun.org/archives/12231660.html</guid><description>&lt;p&gt;先简单介绍一下Piwik：&lt;/p&gt;
&lt;p&gt;Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 就像Google Analytics 一样。它给你一些关于你的网站的实用统计报告，比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等… Piwik拥有众多不同功能的插件，你可以添加新的功能或是移除你不需要的功能，Piwik同样可以安装在你的服务器上面，数据就保存在你自己的服务器上 面。你可以非常容易的插入统计图表到你的博客或是网站抑或是后台的控制面板中。安装完成后，你只需将一小段代码放到将要统计的网页中即可。&lt;/p&gt;
&lt;p&gt;做网站的人如果不希望使用其它第三方的统计代码，可以自己搭建一个Piwik，这个功能也是很强大的。并且支持中文。&lt;/p&gt;
&lt;div id="attachment_1662" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/12/20111223160508-piwik-google-analytics-static.jpg"&gt;&lt;img class="size-large wp-image-1662" title="20111223160508-piwik-google-analytics-static" src="//fukun.org/wp-content/uploads/2011/12/20111223160508-piwik-google-analytics-static-600x283.jpg" alt="像Google Analytics一样的Web统计软件 --- Piwik" width="600" height="283" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 像Google Analytics一样的Web统计软件 --- Piwik
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>linux/unix 下 删除sendmail -bp 邮件队列；查看sendmail发送邮件日志</title><link>https://fukun.org/archives/12231654.html</link><pubDate>Fri, 23 Dec 2011 07:00:47 +0800</pubDate><guid>https://fukun.org/archives/12231654.html</guid><description>&lt;p&gt;linux/unix 下 删除sendmail -bp 邮件队列&lt;/p&gt;
&lt;p&gt;linux下，使用sendmail -bp 或者 mailq 可以查看到邮件发送队列，里边会列出有几个邮件等待发送。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[]#mailq
 /var/spool/mqueue (2 requests)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
pBN6jQ42026230 125278 Fri Dec 23 14:45 &amp;lt;gateway@localhost.localdomain&amp;gt;
 8BITMIME (Deferred: 452 Too many recipients received this hour)
 &amp;lt;digdeeply@staff.sina.com.cn&amp;gt;
pBN6kF7B026383 125278 Fri Dec 23 14:46 &amp;lt;gateway@localhost.localdomain&amp;gt;
 8BITMIME (Deferred: 452 Too many recipients received this hour)
 &amp;lt;digdeeply@staff.sina.com.cn&amp;gt;
 Total requests: 2
&lt;/pre&gt;
&lt;p&gt;邮件队列的文件都保存在 /var/spool/mqueue/ 文件夹内，查看此文件夹时，可以看到邮件队列内的邮件:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[]#ls /var/spool/mqueue/
dfpBN6jQ42026230 dfpBN6kF7B026383 qfpBN6jQ42026230 qfpBN6kF7B026383
&lt;/pre&gt;
&lt;p&gt;如果需要删除队列，直接清空该文件夹即可:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[]#rm /var/spool/mqueue/*
&lt;/pre&gt;</description></item><item><title>原创翻译—MongoDB入门(PHP客户端)</title><link>https://fukun.org/archives/12221642.html</link><pubDate>Wed, 21 Dec 2011 16:14:39 +0800</pubDate><guid>https://fukun.org/archives/12221642.html</guid><description>&lt;p&gt;原文：&lt;a href="http://pronewb.com/mongodb-as-in-humongous-not-retarded" target="_blank"&gt;MongoDB as in huMONGOus, not retarded&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最近公司有一个比较大的项目，涉及到的数据很多，需要做一个统计分析系统，供做决策使用。考虑放弃mysql，使用NoSql数据库，我觉得MongoDB最适合了，看了一片MongoDB入门的文章，觉得不错，抽时间一点点翻译翻译，翻译的不对、不好的地方，还请大家多多指教。&lt;/p&gt;
&lt;p&gt;——————————————————————————-&lt;/p&gt;
&lt;p&gt;与其他人不一样，我不会在iPad上写任何东西。是的，我仍在写Popurls Clone系列的后续部分，而且和往常一样，它花费了我比预期更长的时间。生活是美好的&lt;del&gt;一大堆账单蜂拥而至，它证明：你确实需要通过“工作”来“挣钱”。但是，我们为什么会这么认为？？那是相当愚蠢的，就像在动画《星球大战》前传/续集中发生克隆战争一样（不知道这么翻译对不对，看《&lt;em&gt;The Big Bang Theory&lt;/em&gt;》也多次提到了《星球大战》，一直想看，也没机会看，将来会抽时间学习下的~:)）当人们开始思考一些人生伟大的、有意义的事情时，比如说：你怎样逃掉你的账单。我想，是时候写一些关于数据库的东西了。你看到前面这些话之间的联系了么？–看懂了？太好了，虽然我不知道有啥关系，哈哈哈哈。。。。在谷歌搜索mysql，大约有1.17亿条结果，如果搜索MongoDB，只有1、2百万左右，很好。这意味着，如果我的这篇文章被谷歌收录了，它将构成不少于8.33 × 10&lt;sup&gt;-7&lt;/sup&gt; %的相关搜索的结果。与mysql的形成鲜明的对比，是5.88 × 10&lt;sup&gt;-9&lt;/sup&gt; %。我也已经写了不少关于mysql的东西，我真是个大好人啊[害羞]…简单来说，本文将覆盖MongoDB以及你如果在PHP中使用它，前边的东西让大家高兴下，如果你不感冒，那么你还是不用看了&lt;/del&gt;&lt;/p&gt;
&lt;h3 id="简要介绍mongodb"&gt;简要介绍MongoDB&lt;/h3&gt;
&lt;p&gt;首先，MongoDB不是像mysql一样的关系型数据库RDBMS，关系数据库是基于关系模型、基于埃德加·弗兰克在1969年提出的&lt;a href="http://zh.wikipedia.org/wiki/%E4%B8%80%E9%98%B6%E9%80%BB%E8%BE%91" target="_blank"&gt;一阶逻辑&lt;/a&gt;。数据及它们的内在关系，不存储为表，表构成了它们之间的关系，这些表由一些固定数量的垂直列和不固定数量的行的模型组成，理论上，行可以无限大。数据通过SQL语句来进行查询，好了——-我们这里讨论的是关于NoSql技术的一部分–MongoDB，在Nosql技术中，有三种类型的数据库：以列为导向的，Key/Value键值对的，以及以文档存储为导向的，MongoDB属于第三类。在这里，一个文档，就是一个带有一些给定属性的数据结构，这些属性可以是字符串、数字、数组或者Objects等等，如果你在PHP中接触过复合数组或者Object对象，你就明白是什么意思了。你也可以在collections中给文档分组，同样的，有一些叫做子文档的，你也可以那样认为。&lt;/p&gt;</description></item><item><title>MongoDB as in huMONGOus, not retarded –原文</title><link>https://fukun.org/archives/12211648.html</link><pubDate>Wed, 21 Dec 2011 04:19:20 +0800</pubDate><guid>https://fukun.org/archives/12211648.html</guid><description>&lt;p&gt;摘自：&lt;a href="http://pronewb.com/mongodb-as-in-humongous-not-retarded" target="_blank"&gt;&lt;a href="http://pronewb.com/mongodb-as-in-humongous-not-retarded"&gt;http://pronewb.com/mongodb-as-in-humongous-not-retarded&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unlike the rest of the known world, I won’t write anything on the iPad. Yet. Instead, I’m still in the process of writing the upcoming parts of my Popurls Clone series and as per usual, it takes a lot more time than expected. In combination with a massive amount of bills, life is good! As it turns out, you actually need to “work” in order to get “money”. How, when and why did we agree upon that? That’s just as stupid as, say, doing a fully animated Star Wars prequel/sequel to take place during the Clone Wars. Oh, wait… While pondering life’s great mysteries, such as how you can evade paying your bills, I felt it was time to write something about databases. You see the connection, right? Good, because I don’t. A quick Google search for MySQL rendered roughly 117 million results so I figured that another article about it would be kinda superfluous. A search for MongoDB on the other hand resulted in “only” 1,2 million results. Much better. That means that if and when this article gets indexed by the Google, it will constitute no less than ~ 8.33 × 10-7 % of the relevant search results, in stark contrast to the ~ 5.88 × 10-9 %, should I’ve written some stuff about MySQL. Goodie! In short, this article will cover MongoDB and how you can use it with PHP. Good times ahead so if you’re a killjoy, you’re not welcome.&lt;/p&gt;</description></item><item><title>读书-《MongoDB The Definitive Guide》-1220</title><link>https://fukun.org/archives/12201639.html</link><pubDate>Tue, 20 Dec 2011 10:50:14 +0800</pubDate><guid>https://fukun.org/archives/12201639.html</guid><description>&lt;p&gt;《MongoDB The Definitive Guide》&lt;/p&gt;
&lt;p&gt;《MongoDB权威指南》&lt;/p&gt;
&lt;p&gt;Page 80&lt;/p&gt;</description></item><item><title>读书-《MongoDB The Definitive Guide》</title><link>https://fukun.org/archives/12191636.html</link><pubDate>Mon, 19 Dec 2011 10:37:18 +0800</pubDate><guid>https://fukun.org/archives/12191636.html</guid><description>&lt;p&gt;《MongoDB The Definitive Guide》&lt;/p&gt;
&lt;p&gt;《MongoDB权威指南》&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Page 46&lt;/p&gt;</description></item><item><title>记住几个bash快捷键，可以极高的提高工作效率~~</title><link>https://fukun.org/archives/12191633.html</link><pubDate>Mon, 19 Dec 2011 08:15:34 +0800</pubDate><guid>https://fukun.org/archives/12191633.html</guid><description>&lt;p&gt;记住几个bash快捷键，可以极高的提高工作效率~~&lt;/p&gt;
&lt;p&gt;下面开始了~~&lt;/p&gt;
&lt;p&gt;Ctrl-A 用于将光标定位到本行最前面，相当于编辑器中用HOME键&lt;/p&gt;
&lt;p&gt;Ctrl-E 即将光标移动到本行末尾，相当于End键&lt;/p&gt;
&lt;p&gt;Ctrl-B 用于将光标向左移动一格，相当于左箭头键&lt;/p&gt;
&lt;p&gt;Ctrl-F 用于将光标向右移动一格，相当于右箭头键&lt;/p&gt;
&lt;p&gt;Ctrl-D 即删除光标所在处的字符，相当于Del键&lt;/p&gt;
&lt;p&gt;Ctrl-K 用于删除从光标处开始到结尾处的所有字符&lt;/p&gt;
&lt;p&gt;Ctrl-L 清屏，相当于clear命令&lt;/p&gt;
&lt;p&gt;Ctrl-R 进入历史命令查找状态，然后你输入几个关键字符，就可以找到你使用过的命令&lt;/p&gt;</description></item><item><title>什么是奥坎氏简化论 – 奥卡姆剃刀 – Occam’s Razor, Ockham’s Razor</title><link>https://fukun.org/archives/12161627.html</link><pubDate>Fri, 16 Dec 2011 06:23:25 +0800</pubDate><guid>https://fukun.org/archives/12161627.html</guid><description>&lt;p&gt;奥坎氏简化论,又称奥卡姆剃刀（Occam’s Razor, Ockham’s Razor），是由14世纪逻辑学家、圣方济各会修士奥卡姆的威廉（William of Occam）提出的一个原理。奥卡姆（Ockham）在英格兰的萨里郡，那是他出生的地方。&lt;/p&gt;
&lt;p&gt;这个原理称为“如无必要，勿增实体”（Entities should not be multiplied unnecessarily）。有时为了显示其权威性，人们也使用它原始的拉丁文形式:&lt;/p&gt;
&lt;p&gt;_Pluralitas non est ponenda sine necessitate.&lt;/p&gt;
&lt;p&gt;Frustra fit per plura quod potest fieri per pauciora.&lt;/p&gt;
&lt;p&gt;Entia non sunt multiplicanda praeter necessitatem._&lt;/p&gt;
&lt;p&gt;事实上，只有前两种形式见于他现存的著作中，而第三种形式则由后来的一位学者撰写。威廉使用这个原理证明了许多结论，包括“通过思辨不能得出上帝存在的结论”。这使他不受罗马教皇的欢迎。&lt;/p&gt;</description></item><item><title>入门MongoDB，你需要注意的4个技巧</title><link>https://fukun.org/archives/12161622.html</link><pubDate>Fri, 16 Dec 2011 05:57:06 +0800</pubDate><guid>https://fukun.org/archives/12161622.html</guid><description>&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 作者写下这篇文章的用意，就是提醒广大DBA不要重蹈覆辙。特别是MongoDB初学者需要注意这四个技巧，会避免你走很多弯路。
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 我之所以喜欢MongoDB，主要是因为在动态语言中使用它是如此的简单，自然。到目前为止，我已经在两个项目（Encode 和 Sparrw）中使用过它了，虽然对这个选择我非常满意，但是有些问题我还是没有注意到，这些问题让我抓了好几个小时的头皮才解决。如果你有多台机器，然后为数据库多分配几台机器，那么有些问题可以迎刃而解，但是我的项目是运行在单个（虚拟）服务器之上的低流量Web应用程序。
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 （关于MongoDB，具体可以参考：http://www.mongodb.org/）
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 （关于作者的两个项目Encode 和 Sparrw，分别可以参考：http://en.co.de/和http://sparrw.com/）
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 这些问题都很简单，都是一些文档化的东西，不是什么Bug（当然，这要看你问谁了）。如果你读过所有的文档，那么这些问题可能你基本都见过了。我也是，但是在那之后，当再次遇到它们的时候，我就把文档中的内容都忘到脑后了，然后，我不得不再次修复它们。
&lt;/p&gt;</description></item><item><title>MongoDB，无模式文档型数据库简介</title><link>https://fukun.org/archives/12161620.html</link><pubDate>Fri, 16 Dec 2011 05:20:04 +0800</pubDate><guid>https://fukun.org/archives/12161620.html</guid><description>&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 Mongo是一个高性能，开源，无模式的文档型数据库，它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发，提供了以下功能：
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 ◆面向集合的存储：适合存储对象及JSON形式的数据。
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 ◆动态查询：Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记，可轻易查询文档中内嵌的对象及数组。
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 ◆完整的索引支持：包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式，并生成一个高效的查询计划。
&lt;/p&gt;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #333333; background-color: #f8f8f8; text-indent: 28px; font-family: 宋体; font-size: 14px; line-height: 28px; padding: 0px;"&gt;
 ◆查询监视：Mongo包含一个监视工具用于分析数据库操作的性能。
&lt;/p&gt;</description></item><item><title>一条SQL</title><link>https://fukun.org/archives/12151611.html</link><pubDate>Thu, 15 Dec 2011 04:43:37 +0800</pubDate><guid>https://fukun.org/archives/12151611.html</guid><description>&lt;p&gt;今天上午在一个JAVA群里，有人问了一个关于sql的问题，他用的应该是oracle或者DB2之类的数据库，偶也不清楚，就变变数据类型，用mysql做例子吧。大概也就是这个意思，要把如下的一个形式的表数据，&lt;/p&gt;
&lt;pre&gt;mysql&amp;gt; select * from table_sql1;
+--------+---------+-------+
| myyear | mymonth | amout |
+--------+---------+-------+
| 1991 | 1 | 1.1 |
| 1991 | 2 | 1.2 |
| 1991 | 3 | 1.3 |
| 1991 | 4 | 1.4 |
| 1992 | 1 | 2.1 |
| 1992 | 2 | 2.2 |
| 1992 | 3 | 2.3 |
| 1992 | 4 | 2.4 |
+--------+---------+-------+&lt;/pre&gt;
&lt;p&gt;通过一条SQL，查询出需要的结果，需要的结果是这个样子：&lt;/p&gt;
&lt;pre&gt;+--------+------+------+------+------+
| myyear | m1 | m2 | m3 | m4 |
+--------+------+------+------+------+
| 1991 | 1.1 | 1.2 | 1.3 | 1.4 |
| 1992 | 2.1 | 2.2 | 2.3 | 2.4 |
+--------+------+------+------+------+&lt;/pre&gt;</description></item><item><title>启用新域名digdeeply.info</title><link>https://fukun.org/archives/12141605.html</link><pubDate>Wed, 14 Dec 2011 09:46:35 +0800</pubDate><guid>https://fukun.org/archives/12141605.html</guid><description>&lt;p&gt;正式启用新域名 &lt;a href="http://digdeeply.info" title="http://digdeeply.info"&gt;http://digdeeply.info&lt;/a&gt; ,现在大家可以通过 &lt;a href="http://digdeeply.info" title="http://digdeeply.info"&gt;http://digdeeply.info&lt;/a&gt; 和 &lt;a href="http://digdeeply.org" title="http://digdeeply.org"&gt;http://digdeeply.org&lt;/a&gt; 进行访问啦。。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>bash快捷建-光标移到行首、行尾等</title><link>https://fukun.org/archives/12131599.html</link><pubDate>Tue, 13 Dec 2011 02:43:08 +0800</pubDate><guid>https://fukun.org/archives/12131599.html</guid><description>&lt;h2 id="bash快捷建"&gt;bash快捷建&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl键组合&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+a:光标移到行首。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+b:光标左移一个字母&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+c:杀死当前进程。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+d:退出当前 Shell。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+e:光标移到行尾。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+h:删除光标前一个字符，同 backspace 键相同。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+k:清除光标后至行尾的内容。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+l:清屏，相当于clear。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+r:搜索之前打过的命令。会有一个提示，根据你输入的关键字进行搜索bash的history&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+u: 清除光标前至行首间的所有内容。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+w: 移除光标前的一个单词&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+t: 交换光标位置前的两个字符&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+y: 粘贴或者恢复上次的删除&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的区别，这2个是删除光标前的字符&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+f: 光标右移&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ctrl+z : 把当前进程转到后台运行，使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ，到后台，然后fg,重新恢复&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;esc组合&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;esc+d: 删除光标后的一个词&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;esc+f: 往右跳一个词&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;esc+b: 往左跳一个词&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;esc+t: 交换光标位置前的两个单词。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>php的IP转换成整型函数ip2long()出现负数</title><link>https://fukun.org/archives/12121596.html</link><pubDate>Mon, 12 Dec 2011 10:06:21 +0800</pubDate><guid>https://fukun.org/archives/12121596.html</guid><description>&lt;p&gt;php中将IP转换成整型的函数ip2long（）容易出现问题，在IP比较大的情况下，会变成负数。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
$ip = '192.168.127.1';
$ip_n = ip2long($ip);
echo $ip_n; //得到 -1062699263
?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;由于IP转换成的整型值太大超出了整型的范围，所以变成负数。需写成$ip_n = bindec(decbin(ip2long($ip)));这样便可得到无符号的整型数，如下所示:&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
$ip = '192.168.127.1';
$ip_n = bindec(decbin(ip2long($ip)));
echo $ip_n; //得到 3232268033
?&amp;gt;
&lt;/pre&gt;</description></item><item><title>新版Twitter有五个地方很像新浪微博weibo</title><link>https://fukun.org/archives/12091588.html</link><pubDate>Fri, 09 Dec 2011 15:06:15 +0800</pubDate><guid>https://fukun.org/archives/12091588.html</guid><description>&lt;div id="attachment_1589" style="width: 504px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/12/2011-12-09-twitter-sina-weibo-like.jpeg"&gt;&lt;img class="size-full wp-image-1589" title="电影《无间道》剧照" src="//fukun.org/wp-content/uploads/2011/12/2011-12-09-twitter-sina-weibo-like.jpeg" alt="电影《无间道》剧照" width="494" height="322" srcset="//fukun.org/wp-content/uploads/2011/12/2011-12-09-twitter-sina-weibo-like.jpeg 494w, //fukun.org/wp-content/uploads/2011/12/2011-12-09-twitter-sina-weibo-like-300x196.jpeg 300w" sizes="(max-width: 494px) 100vw, 494px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 电影《无间道》剧照
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;“出来跑，不论做过什么，迟早要还。”&lt;/p&gt;
&lt;p&gt;我是第一批受邀参加新浪微博测试的用户，当时看到这个产品之后不以为然，觉得也会像其他产品一样画虎不成反类犬。但后来，你也知道，中国的微博火了，新浪微博火了，获得不可开交、一塌糊涂。&lt;/p&gt;
&lt;p&gt;36氪见证了新浪微博从微创新到创新的过程。现在轮到新浪微博被微创新了。今天Twitter宣布进行大装修，很多地方都可以看到新浪微博的影子。不管你是否承认这一点，至少有一个哥们儿有类似的想法。&lt;a title="Posts by Steven Millward" href="http://www.penn-olson.com/author/steven-millward/" rel="author external nofollow" target="_blank"&gt;Steven Millward&lt;/a&gt;列出了&lt;a href="http://www.penn-olson.com/2011/12/09/twitter-redesign-like-sina-weibo/" rel="external nofollow" target="_blank"&gt;新版Twitter和新浪微博类似的地方&lt;/a&gt;：&lt;/p&gt;</description></item><item><title>千万级访问量架构</title><link>https://fukun.org/archives/12081618.html</link><pubDate>Thu, 08 Dec 2011 02:44:59 +0800</pubDate><guid>https://fukun.org/archives/12081618.html</guid><description>&lt;p&gt;1、HTML 静态化&lt;/p&gt;
&lt;p&gt;其实大家都知道，效率最高、消耗最小的就是纯静态化的 html 页面，所以我们尽可能使我们的网站上的页面采用静态页面来实现，这个最简单 的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站，我们无 法全部手动去挨个实现，于是出现了我们常见的信息发布系统 CMS，像我们常 访问的各个门户站点的新闻频道，甚至他们的其他频道，都是通过信息发布系统 来管理和实现的，信息发布系统可以实现最简单的信息录入自动生成静态页面， 还能具备频道管理、权限管理、自动抓取等功能，对于一个大型网站来说，拥有 一套高效、可管理的 CMS 是必不可少的。除了门户和信息发布类型的网站，对 于交互性要求很高的社区类型网站来说， 尽可能的静态化也是提高性能的必要手 段，将社区内的帖子、文章进行实时的静态化，有更新的时候再重新静态化也是 大量使用的策略，像 Mop 的大杂烩就是使用了这样的策略，网易社区等也是如 此。同时，html 静态化也是某些缓存策略使用的手段，对于系统中频繁使用数 据库查询但是内容更新很小的应用，可以考虑使用 html 静态化来实现，比如论 坛中论坛的公用设置信息， 这些信息目前的主流论坛都可以进行后台管理并且存 储再数据库中，这些信息其实大量被前台程序调用，但是更新频率很小，可以考 虑将这部分内容进行后台更新的时候进行静态化， 这样避免了大量的数据库访问 请求。&lt;/p&gt;</description></item><item><title>PowerDesigner 设置的一些小技巧</title><link>https://fukun.org/archives/12061616.html</link><pubDate>Tue, 06 Dec 2011 09:05:14 +0800</pubDate><guid>https://fukun.org/archives/12061616.html</guid><description>&lt;p&gt;1、PowerDesigner使用MySQL的auto_increment&lt;/p&gt;
&lt;p&gt;◇问题描述：&lt;/p&gt;
&lt;p&gt;PD怎样能使主键id使用MySQL的auto_increment呢？&lt;/p&gt;
&lt;p&gt;◇解决方法：&lt;/p&gt;
&lt;p&gt;打开tableproperties窗口→columns→选中id列→打开columnsproperties窗口→勾选identity即可&lt;/p&gt;
&lt;p&gt;注意：概念模型没有此选项，物理模型才有&lt;/p&gt;
&lt;p&gt;2、PowerDesigner去掉SQL脚本中的双引号&lt;/p&gt;
&lt;p&gt;◇问题描述：&lt;/p&gt;
&lt;p&gt;PD生成Oracle数据库建表SQL时，默认会给表名和字段名加上双引号，怎样能去掉SQL脚本中的双引号呢？&lt;/p&gt;
&lt;p&gt;◇解决方法：&lt;/p&gt;
&lt;p&gt;把Database→EditCurrentDBMS→General→Script→Sql→Format→CaseSensitivityUsingQuote设置为NO即可&lt;/p&gt;</description></item><item><title>=_=!!忘记改解析了。。</title><link>https://fukun.org/archives/12051586.html</link><pubDate>Mon, 05 Dec 2011 13:13:03 +0800</pubDate><guid>https://fukun.org/archives/12051586.html</guid><description>&lt;p&gt;主机空间周五换了机房，结果忘记换DNS了。。。&lt;/p&gt;
&lt;p&gt;两天也没看，悲催了，一点访问量都没。。&lt;/p&gt;</description></item><item><title>每个程序员都应该读的一本书–《Rework》</title><link>https://fukun.org/archives/12021581.html</link><pubDate>Fri, 02 Dec 2011 09:02:50 +0800</pubDate><guid>https://fukun.org/archives/12021581.html</guid><description>&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-size: 14px; line-height: 22px; color: #333333; font-family: Arial, Tahoma, Verdana; background-color: #ffffff; margin: 0px;"&gt;
 每一个程序员都有改变世界的梦想，他们不甘平凡，他们想要与众不同，他们想要创立世界上最酷的公司，那具体该如何做呢？风靡全球的《&lt;a style="color: #666666; text-decoration: none;" title="Rework" href="http://www.amazon.cn/gp/product/B0048EKQS0/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;tag=vastwork-23&amp;linkCode=as2&amp;camp=536&amp;creative=3200&amp;creativeASIN=B0048EKQS0" rel="nofollow" target="_blank"&gt;Rework&lt;/a&gt;》将告诉你答案。
&lt;/p&gt;
&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-size: 14px; line-height: 22px; color: #333333; font-family: Arial, Tahoma, Verdana; background-color: #ffffff; margin: 0px;"&gt;
 &lt;a style="color: #666666; text-decoration: none;" href="http://37signals.com/"&gt;37signals&lt;/a&gt;是一家很特别的公司，他们有很独特的理念。虽然他们的团队只有16人，但他们的几个产品每年都会带来相当可观的利润。他们反对风险投资，反对扩大规模，反对堆砌功能。如果让我用一个词形容他们的话，那就是maverick，在某种程度上他们与乔布斯有相似之处。除了他们的产品外，他们还有一些byproduct: 一个很著名的博客：&lt;a style="color: #666666; text-decoration: none;" href="http://37signals.com/svn/"&gt;Signal vs Noise&lt;/a&gt;，全世界都为之疯狂的web框架ruby on rails，还有2本书:《getting real》《rework》，今天我就要介绍一下《rework / &lt;a style="color: #666666; text-decoration: none;" title="重来" href="http://www.amazon.cn/gp/product/B0048EKQS0/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;tag=vastwork-23&amp;linkCode=as2&amp;camp=536&amp;creative=3200&amp;creativeASIN=B0048EKQS0" rel="nofollow" target="_blank"&gt;重来&lt;/a&gt;:更为简单有效的商业思维》这本书。
&lt;/p&gt;
&lt;div id="attachment_1583" style="width: 319px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/12/Rework.jpg"&gt;&lt;img class="size-full wp-image-1583" title="rework / 重来:更为简单有效的商业思维" src="//fukun.org/wp-content/uploads/2011/12/Rework.jpg" alt="rework" width="309" height="432" srcset="//fukun.org/wp-content/uploads/2011/12/Rework.jpg 309w, //fukun.org/wp-content/uploads/2011/12/Rework-215x300.jpg 215w" sizes="(max-width: 309px) 100vw, 309px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 rework / 重来:更为简单有效的商业思维
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Linux下打包压缩解包解压缩目录文件-tar/gzip等</title><link>https://fukun.org/archives/11301572.html</link><pubDate>Wed, 30 Nov 2011 07:46:31 +0800</pubDate><guid>https://fukun.org/archives/11301572.html</guid><description>&lt;p&gt;.tar&lt;/p&gt;
&lt;p&gt;解包： tar xvf FileName.tar&lt;/p&gt;
&lt;p&gt;打包：tar cvf FileName.tar DirName&lt;/p&gt;
&lt;p&gt;（注：tar是打包，不是压缩！）&lt;/p&gt;
&lt;p&gt;———————————————&lt;/p&gt;
&lt;p&gt;.gz&lt;/p&gt;
&lt;p&gt;解压1：gunzip FileName.gz&lt;/p&gt;
&lt;p&gt;解压2：gzip -d FileName.gz&lt;/p&gt;
&lt;p&gt;压缩：gzip FileName&lt;/p&gt;
&lt;p&gt;.tar.gz&lt;/p&gt;
&lt;p&gt;解压：tar zxvf FileName.tar.gz&lt;/p&gt;
&lt;p&gt;压缩：tar zcvf FileName.tar.gz DirName&lt;/p&gt;
&lt;p&gt;———————————————&lt;/p&gt;
&lt;p&gt;.bz2&lt;/p&gt;
&lt;p&gt;解压1：bzip2 -d FileName.bz2&lt;/p&gt;
&lt;p&gt;解压2：bunzip2 FileName.bz2&lt;/p&gt;
&lt;p&gt;压缩： bzip2 -z FileName&lt;/p&gt;
&lt;p&gt;.tar.bz2&lt;/p&gt;
&lt;p&gt;解压：tar jxvf FileName.tar.bz2&lt;/p&gt;
&lt;p&gt;压缩：tar jcvf FileName.tar.bz2 DirName&lt;/p&gt;
&lt;p&gt;———————————————&lt;/p&gt;
&lt;p&gt;.bz&lt;/p&gt;
&lt;p&gt;解压1：bzip2 -d FileName.bz&lt;/p&gt;
&lt;p&gt;解压2：bunzip2 FileName.bz&lt;/p&gt;
&lt;p&gt;压缩：未知&lt;/p&gt;
&lt;p&gt;.tar.bz&lt;/p&gt;
&lt;p&gt;解压：tar jxvf FileName.tar.bz&lt;/p&gt;
&lt;p&gt;压缩：未知&lt;/p&gt;
&lt;p&gt;———————————————&lt;/p&gt;</description></item><item><title>javascript/js中保留两位小数的函数</title><link>https://fukun.org/archives/11291569.html</link><pubDate>Tue, 29 Nov 2011 10:40:37 +0800</pubDate><guid>https://fukun.org/archives/11291569.html</guid><description>&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;var test=36.8534 ;
alert(test.toFixed(2)) ;
&lt;/pre&gt;
&lt;p&gt;用这样的函数就可以以四舍五入的形式保留两位小数。&lt;/p&gt;
&lt;p&gt;很好用的，快去试试吧。&lt;/p&gt;</description></item><item><title>vim 批量替换</title><link>https://fukun.org/archives/11281565.html</link><pubDate>Mon, 28 Nov 2011 03:08:59 +0800</pubDate><guid>https://fukun.org/archives/11281565.html</guid><description>&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"&gt;XXX是需要替换的字符串,YYY是替换后的字符串。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"&gt;只对当前行进行替换：&lt;/span&gt;&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:s/XXX/YYY/g&lt;/pre&gt;
&lt;p&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"&gt;,如果需要进行全部替换：&lt;/span&gt;&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:%s/XXX/YYY/g&lt;/pre&gt;
&lt;p style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; text-align: left; background-color: #ffffff;"&gt;
 如果需要对指定部分进行替换,可以用V进入visual模式,再进行
&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:s/XXX/YYY/g&lt;/pre&gt;
&lt;p style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; text-align: left; background-color: #ffffff;"&gt;
 或者可以指定行数对指定范围进行替换:
&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:10,31s/XXX/YYY/g&lt;/pre&gt;
&lt;p&gt;若需要显示行号，在vim下&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:set nu&lt;/pre&gt;
&lt;p&gt;取消显示行号：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;:set nonu&lt;/pre&gt;</description></item><item><title>tar 排除指定目录 –exclude</title><link>https://fukun.org/archives/11271575.html</link><pubDate>Sun, 27 Nov 2011 08:08:01 +0800</pubDate><guid>https://fukun.org/archives/11271575.html</guid><description>&lt;p&gt;假设 test目录下有 1 2 3 4 5 这5个目录,&lt;/p&gt;
&lt;p&gt;1下有6 7两个目录,&lt;/p&gt;
&lt;p&gt;现在要将3 4 5 6目录tar打包,2和1下的6这两个目录不要.&lt;/p&gt;
&lt;p&gt;命令如下:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[www]#cd test
[test]#tar -zcvf test.tar.gz --exclude=1/6 --exclude=2 test
&lt;/pre&gt;
&lt;p&gt;或&lt;/p&gt;</description></item><item><title>《实用C语言》阅读</title><link>https://fukun.org/archives/11231561.html</link><pubDate>Wed, 23 Nov 2011 10:23:20 +0800</pubDate><guid>https://fukun.org/archives/11231561.html</guid><description>&lt;p&gt;阅读到P307,mark.&lt;/p&gt;</description></item><item><title>腾讯，竞争力 和 用户体验</title><link>https://fukun.org/archives/11221557.html</link><pubDate>Tue, 22 Nov 2011 02:03:42 +0800</pubDate><guid>https://fukun.org/archives/11221557.html</guid><description>&lt;p&gt;本文由陈皓(&lt;a href="http://weibo.com/haoel"&gt;@左耳朵耗子&lt;/a&gt;)原创发表在&lt;a href="http://coolshell.cn/articles/5901.html"&gt;CoolShell.cn&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;　自从那篇rant了一堆公司都的文章发布来，得到了大家的关注，有些朋友让我写一下腾讯，在我的微博上（@左耳朵耗子）还有位腾讯的朋友让我也评价一下腾讯。本来不想写的，觉得腾讯没啥好说的，但是因为下面的几个原因，让我有点坐不住了：&lt;/p&gt;
&lt;p&gt;　这两天知乎上的一个“腾讯的核心竞争力”的贴子在微博上被很多人所推崇。&lt;/p&gt;
&lt;p&gt;还有一个网友发邮件给我说让我别rant了，宁可C2C也比rant有意义。&lt;/p&gt;
&lt;p&gt;我周末的时候去豆瓣和他们交流了一些关于产品和用户体验方面的话题。&lt;/p&gt;
&lt;p&gt;还看到了Jeff Bezos的访谈文章《贝佐斯：亚马逊是科技界唯一一家低利润公司》&lt;/p&gt;
&lt;p&gt;　于是就有了这篇文章，但不想再rant了，我希望这篇文章更有价值一些，但是我喜欢的调侃的风格依然，因为这是我觉得能让文章有趣味的方式。&lt;/p&gt;
&lt;p&gt;腾讯的“价值”&lt;/p&gt;</description></item><item><title>IT男们，珍惜生命吧</title><link>https://fukun.org/archives/11161555.html</link><pubDate>Wed, 16 Nov 2011 13:34:32 +0800</pubDate><guid>https://fukun.org/archives/11161555.html</guid><description>&lt;p&gt;今天在微博上听说百度地图的一个IT男去世了~中山大学，刚毕业的~~&lt;/p&gt;
&lt;p&gt;悲催的IT男们，珍惜生命吧，多出去走走，运动运动，珍惜身边的家人、朋友，不要总窝在电脑前边~~&lt;/p&gt;</description></item><item><title>mysql – left join 唯一 用法介绍</title><link>https://fukun.org/archives/11151550.html</link><pubDate>Tue, 15 Nov 2011 09:43:17 +0800</pubDate><guid>https://fukun.org/archives/11151550.html</guid><description>&lt;p&gt;有两个表如下结构：&lt;/p&gt;
&lt;p&gt;test_join_a&lt;/p&gt;
&lt;pre&gt;+----+----------+------+
| id | username | flag |
+----+----------+------+
| 1 | a | 1 |
| 2 | a | 0 |
| 3 | b | 1 |
| 4 | c | 1 |
+----+----------+------+&lt;/pre&gt;
&lt;p&gt;test_join_b&lt;/p&gt;
&lt;pre&gt;+------+-----------+
| idb | usernameb |
+------+-----------+
| 11 | a |
| 12 | b |
| 13 | b |
+------+-----------+&lt;/pre&gt;</description></item><item><title>笔记本搜索无线信号，不能找到自己的/指定的无线信号，可以找到别人的无线信号</title><link>https://fukun.org/archives/11101548.html</link><pubDate>Thu, 10 Nov 2011 06:31:18 +0800</pubDate><guid>https://fukun.org/archives/11101548.html</guid><description>&lt;p&gt;使用笔记本搜索无线路由器的信号，能找到其它的信号，却找不到自己的路由器的信号；其它人可以找到这个无线信号，自己的笔记本却找不到；重新安装了无线网卡驱动，还是不行。&lt;/p&gt;
&lt;p&gt;最后发现，是无线路由器本身的问题， 由于无线路由器的无线基本设置里信道选择的默认选择的是自动选择，用网线连上路由器后发现路由器自动选择的是12信道。。。。。问题找到了，是由于自己的笔记本太古老了，不支持12信道，别人的却可以找到。&lt;/p&gt;</description></item><item><title>mysql-ERROR 1066: Not unique table/alias:</title><link>https://fukun.org/archives/11091542.html</link><pubDate>Wed, 09 Nov 2011 08:13:59 +0800</pubDate><guid>https://fukun.org/archives/11091542.html</guid><description>&lt;p&gt;在调用如下mysql语句时：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;insert into Question(CalleeNo,QNo,ANo,Filename) select 12590,QNo,ANo,Filename from Question where CalleeNo='12590';
&lt;/pre&gt;
&lt;p&gt;提示&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;ERROR 1066: Not unique table/alias: Question
&lt;/pre&gt;
&lt;p&gt;出现该错误，是由于在该mysql语句中使用同一个表用了两次，导致前后发生歧义，解决办法就是给其中一个表或者两个表 起一个别名即可，&lt;/p&gt;
&lt;p&gt;如下语句可以解决该问题：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;insert into Question(CalleeNo,QNo,ANo,Filename) select 12590,QNo,ANo,Filename from Question b where b.CalleeNo='12590';
&lt;/pre&gt;</description></item><item><title>Firefox的扩展与插件区别</title><link>https://fukun.org/archives/11081539.html</link><pubDate>Tue, 08 Nov 2011 08:00:45 +0800</pubDate><guid>https://fukun.org/archives/11081539.html</guid><description>&lt;p&gt;作为微软的有力竞争者,Firefox正以其安全、快速和可扩展性吸引着越来越多的人,尤其是它那极为丰富的插件资源,几乎所有你能想到的功能都有人将其开发出来,很多人也正是看中了这一点才毅然决然地加入到Firefox阵营中来.&lt;/p&gt;
&lt;p&gt;然而,很多刚刚接触Firefox的人却经常会被“扩展”(Extensions)和“插件”(Plugins)这两个词搞得晕头转向,有时甚至会由于进错了分类而找不到自己想要的功能.那么“扩展”和“插件”到底有什么区别呢?&lt;/p&gt;</description></item><item><title>mysql-ERROR 1093: INSERT TABLE is not allowed in FROM table list</title><link>https://fukun.org/archives/11071544.html</link><pubDate>Mon, 07 Nov 2011 10:01:50 +0800</pubDate><guid>https://fukun.org/archives/11071544.html</guid><description>&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;ERROR 1093: INSERT TABLE is not allowed in FROM table list 
&lt;/pre&gt;
&lt;p&gt;出现此原因是由于mysql版本过低，在同一条语句中不支持insert 和 select 同时操作同一张表。在mysql5.0版本之后解决了此问题，可以同时操作同一张表，但是依然不支持在子查询中同时操作同一张表。&lt;/p&gt;
&lt;p&gt;在同一张表中进行select 和 insert 操作时，mysql会产生一张临时表，先查询出结果到临时表，然后再插入表本身。当insert 和 select 操作的是同一个临时表时，同样会报mysql-ERROR 1093 INSERT TABLE is not allowed in FROM table list 错误，因为在这种情况下，临时表不能被引用两次。&lt;/p&gt;</description></item><item><title>前 Google Reader 设计师临时决定回 Google</title><link>https://fukun.org/archives/11031530.html</link><pubDate>Thu, 03 Nov 2011 10:32:52 +0800</pubDate><guid>https://fukun.org/archives/11031530.html</guid><description>&lt;p&gt;Kevin Fox曾经是Google Reader的领衔设计师，他在自己的博客里宣布，已经提交给Google的临时三个月期限offer，在这三个月的时间里回到Google帮助他们拯救小清新版Google Reader，收拾烂摊子。在三个月里他将暂时冻结之前自己做的项目，全身心扑在Google身上，帮他们擦屁股。&lt;/p&gt;
&lt;div id="attachment_1531" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/11/20111103-google-reader-design.jpg"&gt;&lt;img class="size-large wp-image-1531" title="20111103-google-reader-design" src="//fukun.org/wp-content/uploads/2011/11/20111103-google-reader-design-600x323.jpg" alt="前 Google Reader 设计师临时决定回 Google 帮助他们拯救小清新版Google Reader" width="600" height="323" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 前 Google Reader 设计师临时决定回 Google 帮助他们拯救小清新版Google Reader
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Kevin说自己将继续沿着Google针对所有产品设计的小清新界面来修改，但会改进Google Reader让其重新找回自己的“本来面目”。&lt;/p&gt;
&lt;p&gt;Update：目前还不清楚Google是否已经接受了Kevin的好意。&lt;/p&gt;</description></item><item><title>PHP中使用SPLIT()时出现Warning: split(): REG_EMPTY错误的解决办法</title><link>https://fukun.org/archives/11021534.html</link><pubDate>Wed, 02 Nov 2011 02:46:48 +0800</pubDate><guid>https://fukun.org/archives/11021534.html</guid><description>&lt;p&gt;PHP中使用SPLIT()时出现Warning: split(): REG_EMPTY错误的解决办法： 很有可能是由于使用了“|”做分隔符，像这样：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$Arr = split('|',$string);
&lt;/pre&gt;
&lt;p&gt;此时需要对“|”进行转义,这样使用“|”:&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$Arr = split('|',$string);
&lt;/pre&gt;
&lt;p&gt;就可以了。&lt;/p&gt;</description></item><item><title>工程师们,不要想一辈子靠技术混饭吃</title><link>https://fukun.org/archives/11011527.html</link><pubDate>Tue, 01 Nov 2011 09:50:29 +0800</pubDate><guid>https://fukun.org/archives/11011527.html</guid><description>&lt;p&gt;摘自：cnBeta.com&lt;/p&gt;
&lt;p&gt;我现在是自己做，但我此前有多年在从事软件开发工作，当回过头来想一想自己，觉得特别想对那些初学JAVA/DOT .NET技术的朋友说点心里话，希望你们能从我们的体会中，多少受点启发**(也许我说的不好，你不赞同但看在我真心的份上别扔砖头啊)。**&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一、在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇，你千万更不要认为哪些从事市场开发，跑腿的人，没有前途。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>我X，你不会Google么？–程序员，禁浮躁</title><link>https://fukun.org/archives/10311522.html</link><pubDate>Mon, 31 Oct 2011 02:19:19 +0800</pubDate><guid>https://fukun.org/archives/10311522.html</guid><description>&lt;p&gt;注：本文转载自ituring – Juven&lt;/p&gt;
&lt;div id="attachment_1523" style="width: 451px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111031-chengxuyuan-google-x.jpg"&gt;&lt;img class="size-full wp-image-1523" title="20111031-chengxuyuan-google-x" src="//fukun.org/wp-content/uploads/2011/10/20111031-chengxuyuan-google-x.jpg" alt="I will use google before asking dumb questions" width="441" height="273" srcset="//fukun.org/wp-content/uploads/2011/10/20111031-chengxuyuan-google-x.jpg 441w, //fukun.org/wp-content/uploads/2011/10/20111031-chengxuyuan-google-x-300x186.jpg 300w" sizes="(max-width: 441px) 100vw, 441px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 I will use google before asking dumb questions
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;上边这张图片是几天前在推上看到的，一个小朋友在黑板上抄写完N遍“我以后会在问愚蠢问题之前用Google”后，用幽怨的眼神看着你，这让我无法不会心一笑，我曾今是，以后也还是偶尔会成为这个小朋友，但更常见的情况是，我每天会遇到不少朋友问一些简单到Google一下就能立刻获得答案的问题。&lt;/p&gt;</description></item><item><title>Ubuntu php apache mysql 环境配置 apt-get</title><link>https://fukun.org/archives/10281781.html</link><pubDate>Fri, 28 Oct 2011 02:20:08 +0800</pubDate><guid>https://fukun.org/archives/10281781.html</guid><description>&lt;p&gt;安装 Apache2：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo apt-get install apache2
&lt;/pre&gt;
&lt;p&gt;安装PHP模块：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo apt-get install php5
&lt;/pre&gt;
&lt;p&gt;编辑测试页：&lt;/p&gt;
&lt;p&gt;sudo vim/var/www/index.php&lt;/p&gt;
&lt;p&gt;如果提示还没有安装vim，可以用以下bash安装&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;sudo apt-get install vim
&lt;/pre&gt;</description></item><item><title>我写的第一个shell脚本</title><link>https://fukun.org/archives/10251519.html</link><pubDate>Tue, 25 Oct 2011 09:57:00 +0800</pubDate><guid>https://fukun.org/archives/10251519.html</guid><description>&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;#!/bin/bash
fdate=20111001
while [ $fdate != "20111021" ]
do
 #echo $fdate;
 perl -e "print $fdate;"#使用perl脚本处理文件
 fdate=$(($fdate+1));
done
&lt;/pre&gt;
&lt;p&gt;这是我第一次写shell脚本，虽然很简单哈，，不过确实是我为了工作需求而写出来的一个脚本，可以顺序执行20条perl命令，去处理20天的数据，每天的数据处理都得可能要花上一个小时，所以如果人为的去一条一条处理的话，太浪费时间了，写个perl、php或者Python脚本倒是也很简单，不过最近正好在看bash的书，正好当作实践一下了。&lt;/p&gt;</description></item><item><title>传Siri联合创始人基特劳斯已从苹果离职</title><link>https://fukun.org/archives/10241511.html</link><pubDate>Mon, 24 Oct 2011 12:51:35 +0800</pubDate><guid>https://fukun.org/archives/10241511.html</guid><description>&lt;p&gt;北京时间10月24日消息，据国外媒体报道，消息人士透露，Siri公司联合创始人兼CEO达格·基特劳斯(Dag Kittlaus)已经离开苹果。基特劳斯是Siri语音控制功能的创建者，苹果刚刚推出的iPhone 4S因包含了这一功能而受到消费者好评。&lt;/p&gt;
&lt;div id="attachment_1512" style="width: 390px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111025-siri-ceo-dage-jitelaosi.jpg"&gt;&lt;img class="size-full wp-image-1512" title="20111025-siri-ceo-dage-jitelaosi" src="//fukun.org/wp-content/uploads/2011/10/20111025-siri-ceo-dage-jitelaosi.jpg" alt="Siri公司联合创始人兼CEO达格·基特劳斯" width="380" height="285" srcset="//fukun.org/wp-content/uploads/2011/10/20111025-siri-ceo-dage-jitelaosi.jpg 380w, //fukun.org/wp-content/uploads/2011/10/20111025-siri-ceo-dage-jitelaosi-300x225.jpg 300w" sizes="(max-width: 380px) 100vw, 380px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Siri公司联合创始人兼CEO达格·基特劳斯
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;苹果于2010年4月份收购了Siri公司，自那以来基特劳斯一直为苹果负责这一语音识别项目开发。他出生于挪威，自2007年以来一直担任Siri公司CEO。2007年之前，基特劳斯在斯坦福研究院担任外聘教授，并且还在摩托罗拉工作过。&lt;/p&gt;
&lt;p&gt;消 息人士称，基特劳斯离职态度友好并且已经酝酿一段时间了。他的这次离职有多个原因，其中包括他的家庭远在芝加哥，希望抽出时间来从事自己感兴趣的新创业项 目等。基特劳斯显然是在苹果刚刚推出iPhone 4S之后就离开了苹果，但消息来源透露，来自Siri公司的其它高管仍将留在苹果。&lt;/p&gt;
&lt;p&gt;关于以上消息，苹果发言人对媒体的采访没有给予回应。&lt;/p&gt;</description></item><item><title>Google 搜索不再支持加号,疑留为Google+专用</title><link>https://fukun.org/archives/10231506.html</link><pubDate>Sun, 23 Oct 2011 15:23:56 +0800</pubDate><guid>https://fukun.org/archives/10231506.html</guid><description>&lt;p&gt;google中的加号这个运算符一直以来都是一个很实用的Google搜索技巧。比如当你搜索“ai”的时候，Google会将”artificial intelligence”, “Amnesty International”, “Art Institutes”, “Appraisal Institute”, “Adobe Illustrator”等词汇也作为关键字给出搜索结果，但这些并非是你想要的。所以为了只看到包含“ai”的搜索结果，你可以搜索“+ai”。可惜的是现在这个技巧不再管用了，要想搜索“ai”，你可以将“ai”两边加上引号来搜索，严格限制只看到“ai”的搜索结果，但打两个引号要比打一个加号麻烦多了，而且它跟逻辑有关──当你在搜索关键字里用减号的时候，表示不包含某个单词。&lt;/p&gt;
&lt;p&gt;至于Google为何去掉加号这个搜索运算符，估计是想将加号用于Google+的搜索，就像你现在在Google+里写加号，即可直接引用某个Google+用户那样：&lt;/p&gt;</description></item><item><title>adb 在Android模拟器中模拟GPS、打电话、挂电话，发短信</title><link>https://fukun.org/archives/10211501.html</link><pubDate>Fri, 21 Oct 2011 13:38:09 +0800</pubDate><guid>https://fukun.org/archives/10211501.html</guid><description>&lt;p&gt;如何在android模拟器中发短信，模拟GPS、打电话、挂电话，发短信等。&lt;/p&gt;
&lt;p&gt;首先，启动模拟器，&lt;/p&gt;
&lt;p&gt;然后，在电脑的开始菜单中找到运行，输入CMD，回车，进入CMD；使用以下命令连接模拟器&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;C:Documents and SettingsAdministrator&amp;gt;telnet localhost 5554&lt;/pre&gt;
&lt;p&gt;出现&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;Android Console: type 'help' for a list of commands
OK
&lt;/pre&gt;
&lt;p&gt;其中5554为模拟器在本机的端口，可以使用adb devices查看：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;C:android-sdk-windowstools&amp;gt;adb devices

List of devices attached
emulator-5554 device
&lt;/pre&gt;
&lt;p&gt;或者最简单的方法是查看模拟器的左上角的4位数字。&lt;/p&gt;
&lt;div id="attachment_1502" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/201110212047-android-adb-gsm-call-sms-message.jpg"&gt;&lt;img class="size-large wp-image-1502" title="201110212047-android-adb-gsm-call-sms-message" src="//fukun.org/wp-content/uploads/2011/10/201110212047-android-adb-gsm-call-sms-message-600x426.jpg" alt="adb-在Android模拟器中模拟GPS、打电话、挂电话，发短信" width="600" height="426" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 adb-在Android模拟器中模拟GPS、打电话、挂电话，发短信
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>消灭程序员需要百年吗？</title><link>https://fukun.org/archives/10201496.html</link><pubDate>Thu, 20 Oct 2011 02:55:30 +0800</pubDate><guid>https://fukun.org/archives/10201496.html</guid><description>&lt;p&gt;注：&lt;em&gt;本文转载自&lt;a rel="nofollow" href="http://www.ituring.com.cn/article/346" target="_blank"&gt;图灵社区-Diana&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;某天看到一篇博文，《一百年后，人类怎样编程？》，只是这个题目，就勾起心中无限感慨。文章没细看，内容大致是分析各种语言，以及其中各种语言现象，今后的发展趋势。我对于语言的进步一直不感冒，对5年前就有很多人推崇的Ruby，至今也懒得抬眼皮看看，8年前被迫用过几天Perl，我就断定这是最糟糕的编程语言之一，因为它标榜自由，却又没法真正自由。时至今日，我仍然只用 C++，C#，Java这三种语言，如果SQL也算的话就是四种。对于达到一定程度的程序员而言，语言已经不重要了，不管做什么功能或者什么平台，只要不是初次上手，都应该有50%以上的代码可以自动生成出来，另外利用开源代码和商业化构件完成30%以上的工作，真正需要自己手工编写的部分绝对不应超过 20%。不论是自动生成的代码，还是开源代码或构件，最大程度的可理解性和通用性是首要追求的目标，因此最通用的，和使用人数最多的语言才是最好的语言。语言的进步对于提高编程效率确有一定帮助，我自己也深有体会，六年前我做C#项目的时候不得不自己写了对IList进行查询的功能，两年之后，LINQ成了语言自带的标准功能，后来的程序员显然可以节省开发这个功能的时间。但是，语言带来的效率提升，远远不如思考方式变化引起的编程效率飞跃来得大。&lt;/p&gt;
&lt;p&gt;从第一天编程开始，我就不喜欢这个工作，看到同事飞快地打键盘，屏幕不停地吐出一行行程序，觉得这件事实在傻透了，她编的是FOXPRO，又是一种我很看不起的语言。她编的功能，无非就是横竖画上几根表格线，然后把一些数字和文字填到正确的格子里去，这就是公司里的编程高手所做的事情。我曾经惊讶于这么傻的事情竟然真的需要人来做，可是如果不用人做，又能怎样呢？那时幸亏我利用一点小聪明，在还没有开始从事这种傻工作的时候，就改去研究解密算法了，后来又混上了设计师，小经理，总算没有傻掉，那时心里不免暗自得意和庆幸。&lt;/p&gt;</description></item><item><title>JavaScript中的execCommand()命令详解及实例展示</title><link>https://fukun.org/archives/10191515.html</link><pubDate>Wed, 19 Oct 2011 01:29:03 +0800</pubDate><guid>https://fukun.org/archives/10191515.html</guid><description>&lt;p&gt;execCommand方法是执行一个对当前文档，当前选择或者给出范围的命令。处理Html数据时常用&lt;/p&gt;
&lt;p&gt;如下格式：document.execCommand(sCommand[,交互方式, 动态参数]) ，其中：sCommand为指令参数（如下例中的”2D-Position”），交互方式参数如果是true的话将显示对话框，如果为false的话，则不显示对话框（下例中的”false”即表示不显示对话框），动态参数一般为一可用值或属性值（如下例中的”true”）。&lt;/p&gt;</description></item><item><title>VIM速查卡</title><link>https://fukun.org/archives/10181491.html</link><pubDate>Tue, 18 Oct 2011 03:58:22 +0800</pubDate><guid>https://fukun.org/archives/10181491.html</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #ffffff; background-color: green;"&gt;Green &lt;/span&gt; = Essential 入门级&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #000000; background-color: yellow;"&gt;Yellow &lt;/span&gt; = Basic 基本&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #000000; background-color: orange;"&gt;Orange &lt;/span&gt; / &lt;span style="color: #000000; background-color: blue;"&gt;Blue&lt;/span&gt; = Advanced 高级&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #000000; background-color: red;"&gt;Red &lt;/span&gt; = Expert 专家级&lt;/li&gt;
&lt;/ul&gt;
&lt;div id="attachment_1488" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111018-vim_cheat_sheet_for_programmers_print.png"&gt;&lt;img class="aligncenter size-full wp-image-1493" title="20111018-vim_cheat_sheet_for_programmers_print" src="//fukun.org/wp-content/uploads/2011/10/20111018-vim_cheat_sheet_for_programmers_print.png" alt="vim速查卡(点击查看大图)" width="600" height="500" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 vim速查卡(点击查看大图)
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;你还可以下载&lt;a onclick="pageTracker._trackPageview('/outgoing/michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_print.pdf?referer=http%3A%2F%2Fcoolshell.cn%2Farticles%2F5531.html');" href="http://michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_print.pdf" target="_blank"&gt;PDF版&lt;/a&gt;的和&lt;a onclick="pageTracker._trackPageview('/outgoing/michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_print.xlsx?referer=http%3A%2F%2Fcoolshell.cn%2Farticles%2F5531.html');" href="http://michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_print.xlsx" target="_blank"&gt;Excel版&lt;/a&gt;的，如果你是色盲的话，还有&lt;a onclick="pageTracker._trackPageview('/outgoing/michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_colorblind.pdf?referer=http%3A%2F%2Fcoolshell.cn%2Farticles%2F5531.html');" href="http://michael.peopleofhonoronly.com/vim/vim_cheat_sheet_for_programmers_colorblind.pdf" target="_blank"&gt;蓝色版PDF&lt;/a&gt;的。&lt;/p&gt;</description></item><item><title>Vim的分屏功能</title><link>https://fukun.org/archives/10171487.html</link><pubDate>Mon, 17 Oct 2011 03:31:32 +0800</pubDate><guid>https://fukun.org/archives/10171487.html</guid><description>&lt;div id="attachment_1488" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111017113310-vim-split-vsplit.jpg"&gt;&lt;img class="size-large wp-image-1488" title="20111017113310-vim-split-vsplit" src="//fukun.org/wp-content/uploads/2011/10/20111017113310-vim-split-vsplit-600x448.jpg" alt="Vim的分屏功能" width="600" height="448" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Vim的分屏功能
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>php-perl哈希实现算法–DJBX33A (Daniel J. Bernstein, Times 33 with Addition) APR哈希默认算法</title><link>https://fukun.org/archives/10141483.html</link><pubDate>Fri, 14 Oct 2011 07:21:59 +0800</pubDate><guid>https://fukun.org/archives/10141483.html</guid><description>&lt;pre class="brush: cpp; title: Example; notranslate" title="Example"&gt;APR_DECLARE_NONSTD(unsigned int) apr_hashfunc_default(const char *char_key,
 apr_ssize_t *klen)
{
 unsigned int hash = 0;
 const unsigned char *key = (const unsigned char *)char_key;
 const unsigned char *p;
 apr_ssize_t i;

 /*
 * This is the popular `times 33' hash algorithm which is used by
 * perl and also appears in Berkeley DB. This is one of the best
 * known hash functions for strings because it is both computed
 * very fast and distributes very well.
 *
 * The originator may be Dan Bernstein but the code in Berkeley DB
 * cites Chris Torek as the source. The best citation I have found
 * is "Chris Torek, Hash function for text in C, Usenet message
 * &amp;lt;27038@mimsy.umd.edu&amp;gt; in comp.lang.c , October, 1990." in Rich
 * Salz's USENIX 1992 paper about INN which can be found at
 * .
 *
 * The magic of number 33, i.e. why it works better than many other
 * constants, prime or not, has never been adequately explained by
 * anyone. So I try an explanation: if one experimentally tests all
 * multipliers between 1 and 256 (as I did while writing a low-level
 * data structure library some time ago) one detects that even
 * numbers are not useable at all. The remaining 128 odd numbers
 * (except for the number 1) work more or less all equally well.
 * They all distribute in an acceptable way and this way fill a hash
 * table with an average percent of approx. 86%.
 *
 * If one compares the chi^2 values of the variants (see
 * Bob Jenkins ``Hashing Frequently Asked Questions'' at
 * http://burtleburtle.net/bob/hash/hashfaq.html for a description
 * of chi^2), the number 33 not even has the best value. But the
 * number 33 and a few other equally good numbers like 17, 31, 63,
 * 127 and 129 have nevertheless a great advantage to the remaining
 * numbers in the large set of possible multipliers: their multiply
 * operation can be replaced by a faster operation based on just one
 * shift plus either a single addition or subtraction operation. And
 * because a hash function has to both distribute good _and_ has to
 * be very fast to compute, those few numbers should be preferred.
 *
 * -- Ralf S. Engelschall 
 */

 if (*klen == APR_HASH_KEY_STRING) {
 for (p = key; *p; p++) {
 hash = hash * 33 + *p;
 }
 *klen = p - key;
 }
 else {
 for (p = key, i = *klen; i; i--, p++) {
 hash = hash * 33 + *p;
 }
 }
 return hash;
}
&lt;/pre&gt;</description></item><item><title>hash学习–哈希的原理和代价</title><link>https://fukun.org/archives/10141480.html</link><pubDate>Fri, 14 Oct 2011 06:48:45 +0800</pubDate><guid>https://fukun.org/archives/10141480.html</guid><description>&lt;p&gt;哈希表和哈希函数是大学数据结构中的课程，实际开发中我们经常用到Hashtable这种结构，当遇到键-值对存储，采用Hashtable比ArrayList查找的性能高。为什么呢？我们在享受高性能的同时，需要付出什么代价(这几天看红顶商人胡雪岩，经典台词：&lt;span style="color: #ff9900;"&gt;在你享受这之前，必须受别人吃不了的苦，忍受别人受不了的屈辱&lt;/span&gt;)，那么使用Hashtable是否就是一桩无本万利的买卖呢？就此疑问，做以下分析，希望能抛砖引玉。&lt;/p&gt;</description></item><item><title>Android 应用可在 PC 上运行(貌似仅可以在win7下，xp下不行,附下载体验地址)</title><link>https://fukun.org/archives/10141475.html</link><pubDate>Fri, 14 Oct 2011 01:29:32 +0800</pubDate><guid>https://fukun.org/archives/10141475.html</guid><description>&lt;p&gt;据国外媒体报道，从今天开始在谷歌Android平台下开发的应用在PC上也可以运行，程序也可为这些计算机，这只需通过专为 PC 提供的最新 BlueStacks App Player 即可实现。&lt;/p&gt;
&lt;div id="attachment_1476" style="width: 590px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111014_Android-fo-rPC.jpg"&gt;&lt;img class="size-full wp-image-1476" title="20111014_Android-fo-rPC" src="//fukun.org/wp-content/uploads/2011/10/20111014_Android-fo-rPC.jpg" alt="Android 应用可在 PC 上运行" width="580" height="344" srcset="//fukun.org/wp-content/uploads/2011/10/20111014_Android-fo-rPC.jpg 580w, //fukun.org/wp-content/uploads/2011/10/20111014_Android-fo-rPC-300x178.jpg 300w" sizes="(max-width: 580px) 100vw, 580px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Android 应用可在 PC 上运行
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;近几年，Android逐渐成为市场上领先的移动操作系统，在过去3个月购买智能手机的用户中，约一半都选择的是Android系统。与此同时， 为这些Android用户提供的应用以及游戏的数量也呈上升趋势，据谷歌证实目前两者的量已达25万。从今天开始，众多的应用程序和游戏对于 Android和非Android用户都可适用。&lt;/p&gt;</description></item><item><title>Google+上的Google工程师Steve Yegge：Google不懂平台，Google+就是证明</title><link>https://fukun.org/archives/10131473.html</link><pubDate>Thu, 13 Oct 2011 02:20:37 +0800</pubDate><guid>https://fukun.org/archives/10131473.html</guid><description>&lt;p&gt;此原文来自谷歌工程师Steve Yegge的&lt;a href="https://plus.google.com/110981030061712822816"&gt;google+&lt;/a&gt;：&lt;/p&gt;
&lt;p&gt;Stevey’s Google Platforms Rant&lt;/p&gt;
&lt;p&gt;I was at Amazon for about six and a half years, and now I’ve been at Google for that long. One thing that struck me immediately about the two companies — an impression that has been reinforced almost daily — is that Amazon does everything wrong, and Google does everything right. Sure, it’s a sweeping generalization, but a surprisingly accurate one. It’s pretty crazy. There are probably a hundred or even two hundred different ways you can compare the two companies, and Google is superior in all but three of them, if I recall correctly. I actually did a spreadsheet at one point but Legal wouldn’t let me show it to anyone, even though recruiting loved it.&lt;/p&gt;
&lt;p&gt;I mean, just to give you a very brief taste: Amazon’s recruiting process is fundamentally flawed by having teams hire for themselves, so their hiring bar is incredibly inconsistent across teams, despite various efforts they’ve made to level it out. And their operations are a mess; they don’t really have SREs and they make engineers pretty much do everything, which leaves almost no time for coding – though again this varies by group, so it’s luck of the draw. They don’t give a single shit about charity or helping the needy or community contributions or anything like that. Never comes up there, except maybe to laugh about it. Their facilities are dirt-smeared cube farms without a dime spent on decor or common meeting areas. Their pay and benefits suck, although much less so lately due to local competition from Google and Facebook. But they don’t have any of our perks or extras — they just try to match the offer-letter numbers, and that’s the end of it. Their code base is a disaster, with no engineering standards whatsoever except what individual teams choose to put in place.&lt;/p&gt;</description></item><item><title>linux中select()函数分析,同样适用于Python/Perl中的socket多线程select</title><link>https://fukun.org/archives/10121463.html</link><pubDate>Wed, 12 Oct 2011 06:03:31 +0800</pubDate><guid>https://fukun.org/archives/10121463.html</guid><description>&lt;p&gt;Select在Socket编程中还是比较重要的，可是对于初学Socket的人来说都不太爱用Select写程序，他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序（所谓阻塞方式block，顾名思义，就是进程或是线程执行到这些函数时必须等待某个事件的发生，如果事件没有发生，进程或线程就被阻塞，函数不能立即返回）。可是使用Select就可以完成非阻塞（所谓非阻塞方式non-block，就是进程或线程执行此函数时不必非要等待事件的发生，一旦执行肯定返回，以返回值的不同来反映函数的执行情况，如果事件发生则与阻塞方式相同，若事件没有发生则返回一个代码来告知事件未发生，而进程或线程继续执行，所以效率较高）方式工作的程序，它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。下面详细介绍一下！&lt;/p&gt;
&lt;p&gt;Select的函数格式(我所说的是Unix系统下的伯克利socket编程，和windows下的有区别，一会儿说明)：&lt;/p&gt;
&lt;pre class="brush: cpp; title: Example; notranslate" title="Example"&gt;int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);
&lt;/pre&gt;
&lt;p&gt;先说明两个结构体：&lt;/p&gt;
&lt;p&gt;第一，struct fd_set可以理解为一个集合，这个集合中存放的是文件描述符(file descriptor)，即文件句柄，这可以是我们所说的普通意义的文件，当然Unix下任何设备、管道、FIFO等都是文件形式，全部包括在内，所以毫无疑问一个socket就是一个文件，socket句柄就是一个文件描述符。fd_set集合可以通过一些宏由人为来操作，比如清空集合FD_ZERO(fd_set *)，将一个给定的文件描述符加入集合之中FD_SET(int ,fd_set *)，将一个给定的文件描述符从集合中删除FD_CLR(int ,fd_set*)，检查集合中指定的文件描述符是否可以读写FD_ISSET(int ,fd_set* )。一会儿举例说明。&lt;/p&gt;
&lt;p&gt;第二，struct timeval是一个大家常用的结构，用来代表时间值，有两个成员，一个是秒数，另一个是毫秒数。&lt;/p&gt;</description></item><item><title>IndentationError: unindent does not match any outer indentation level</title><link>https://fukun.org/archives/10111459.html</link><pubDate>Tue, 11 Oct 2011 02:33:45 +0800</pubDate><guid>https://fukun.org/archives/10111459.html</guid><description>&lt;blockquote&gt;
&lt;p&gt;IndentationError: unindent does not match any outer indentation level&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;出现这个问题，基本都是由于缩进问题，尤其发生在你拷贝别人的源码并进行修改、或者拷贝几个不同的源码拷到一块修改进行调式的时候容易遇到，可能因为每个人写程序的缩进可能不一样，有的是tab，有的是空格，这用肉眼很难察觉。解决办法就是把缩进都改为同一种格式即可。&lt;/p&gt;</description></item><item><title>PHP的UTF-8 BOM引起的 Cannot send session cookie – headers already sent…</title><link>https://fukun.org/archives/10101455.html</link><pubDate>Mon, 10 Oct 2011 07:46:37 +0800</pubDate><guid>https://fukun.org/archives/10101455.html</guid><description>&lt;p&gt;今天，在使用notepad++新制作一个程序时，总是提示警告，并且session不起作用。&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:FukunPhpwap_cailingmodify.php:1) in E:fPhpwap_cailingchklogin.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at E:fPhpwap_cailingmodify.php:1) in E:FukunPhpwap_cailingmodify.php on line 4
&lt;/pre&gt;
&lt;p&gt;经检查后发现是由于PHP中的UTF-8格式的BOM引起的。&lt;/p&gt;
&lt;p&gt;解决办法就是删除掉BOM，例如使用notepad++时，可以使用以下方式解决。&lt;/p&gt;
&lt;div id="attachment_1457" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111010_php-utf8-bom1.png"&gt;&lt;img class="size-large wp-image-1457" title="20111010_php-utf8-bom" src="//fukun.org/wp-content/uploads/2011/10/20111010_php-utf8-bom1-600x337.png" alt="php中utf8编码的BOM引起的错误-Cannot send session cookie " width="600" height="337" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 php中utf8编码的BOM引起的错误-Cannot send session cookie
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Chrome新扩展支持远程访问功能</title><link>https://fukun.org/archives/10091450.html</link><pubDate>Sun, 09 Oct 2011 01:39:48 +0800</pubDate><guid>https://fukun.org/archives/10091450.html</guid><description>&lt;div id="attachment_1451" style="width: 410px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111009_chromeRomoteDesktop.jpg"&gt;&lt;img class="size-full wp-image-1451" title="20111009_chromeRomoteDesktop" src="//fukun.org/wp-content/uploads/2011/10/20111009_chromeRomoteDesktop.jpg" alt="谷歌周五为Chrome浏览器发布了新的扩展“Chrome远程桌面”(Chrome Remote Desktop)测试版" width="400" height="276" srcset="//fukun.org/wp-content/uploads/2011/10/20111009_chromeRomoteDesktop.jpg 400w, //fukun.org/wp-content/uploads/2011/10/20111009_chromeRomoteDesktop-300x207.jpg 300w" sizes="(max-width: 400px) 100vw, 400px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 谷歌周五为Chrome浏览器发布了新的扩展“Chrome远程桌面”(Chrome Remote Desktop)测试版
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;新浪科技讯 北京时间10月7日晚间消息，谷歌周五为Chrome浏览器发布了新的扩展“Chrome远程桌面”(Chrome Remote Desktop)测试版，允许用户远程控制网络上的其他计算机。&lt;/p&gt;
&lt;p&gt;Chrome远程桌面相当于基于浏览器的远程桌面软件，无论是对于IT管理员还是计算机用户，该扩展极其实用、方便，可远程控制另一台计算机。&lt;/p&gt;
&lt;p&gt;谷歌称：“Chrome远程桌面测试版允许用户通过Chrome浏览器或Chromebook笔记本远程访问另一台计算机，而且该扩展可跨平台，可以在Windows、Linux和Mac等系统下连接任意两台计算机。”&lt;/p&gt;
&lt;p&gt;要使用该功能，用户首先要允许计算机进行或被远程访问。谷歌同时指出，该技术目前具有一定限制，即每次远程访问时都需要授权。谷歌称：“该版本允许用户进行或被远程访问，但需要提供一次性验证码。整个访问过程十分安全。”&lt;/p&gt;</description></item><item><title>滨保高速事故死者多为河北唐山学院保定籍学生</title><link>https://fukun.org/archives/10081445.html</link><pubDate>Sat, 08 Oct 2011 01:35:28 +0800</pubDate><guid>https://fukun.org/archives/10081445.html</guid><description>&lt;p&gt;中广网天津10月8日消息:10月7日16时许，发生在滨保高速天津界内的重特大交通事故已经造成35人死亡。在医院抢救伤员现场，记者向天津公安交警了解到，死者多为河北省 唐山学院保定籍学生。他们是在国庆假期后当天中午乘坐大客车返校，途经滨保高速上行60公里＋700米处，与一辆同向行驶的山东省济南牌照的丰田小轿车发 生追尾事故，造成大客车右翻至隔离带护栏上，高速滑行了近100米，同时部分乘客被甩出车外，造成35人死亡。&lt;/p&gt;
&lt;p&gt;另据这位交警负责人介 绍，事故大客车按照资料查询荷载应该是53个人，但车辆实际搭载了五十五、六个人。目前，被送往医院救治的伤员登记人数已经升至19人。天津市分管领导和 有关部门的主要领导，正在现场与刚刚赶到的河北省有关领导全力做好事故处置和伤员救治工作。滨保高速公路天津段到记者发稿时仍处于关闭状态。&lt;/p&gt;</description></item><item><title>苹果联合创始人、董事会主席乔布斯逝世</title><link>https://fukun.org/archives/10061441.html</link><pubDate>Thu, 06 Oct 2011 04:52:03 +0800</pubDate><guid>https://fukun.org/archives/10061441.html</guid><description>&lt;div id="attachment_1442" style="width: 544px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/10/20111006-steven_jobs.jpg"&gt;&lt;img class="size-full wp-image-1442" title="20111006-steven_jobs" src="//fukun.org/wp-content/uploads/2011/10/20111006-steven_jobs.jpg" alt="苹果公司官网截图" width="534" height="391" srcset="//fukun.org/wp-content/uploads/2011/10/20111006-steven_jobs.jpg 534w, //fukun.org/wp-content/uploads/2011/10/20111006-steven_jobs-300x220.jpg 300w" sizes="(max-width: 534px) 100vw, 534px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 苹果公司官网截图
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;北京时间10月6日消息，据国外媒体报道，PC产业的先驱、改变了世人对科技看法的苹果董事会主席、联合创始人史蒂夫·乔布斯（Steven P. Jobs）周三逝世。&lt;/p&gt;
&lt;p&gt;苹果在周三在声明中表示，“史蒂夫的光辉、激情和活力是无穷的创新的来源，他丰富并改变了我们所有人的生活。世界因为乔布斯而变得更好。”&lt;/p&gt;
&lt;p&gt;乔布斯的家人在一份单独的声明中表示，“乔布斯周三在家人的陪伴中安静的离开……我们知道，许多人将与我们一样忧伤，但是在这一悲痛时期，我们希望你们能够尊重我们的隐私。”&lt;/p&gt;</description></item><item><title>如何在Python中使用 Linux epoll 翻译自《How To Use Linux epoll with Python》</title><link>https://fukun.org/archives/10051470.html</link><pubDate>Wed, 05 Oct 2011 07:04:22 +0800</pubDate><guid>https://fukun.org/archives/10051470.html</guid><description>&lt;p&gt;原文地址: &lt;a rel="nofollow" href="http://scotdoyle.com/python-epoll-howto.html" target="_blank"&gt;&lt;a href="http://scotdoyle.com/python-epoll-howto.html"&gt;http://scotdoyle.com/python-epoll-howto.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;文章里面的代码可以 &lt;a rel="nofollow" href="http://scotdoyle.com/python-epoll-examples.tar.gz"&gt;点击这里下载&lt;/a&gt;.&lt;/p&gt;
&lt;div id="id2"&gt;
 &lt;h1&gt;
 介绍
 &lt;/h1&gt;
 &lt;p&gt;
 从2.6版本开始, &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt; 提供了使用linux &lt;a href="http://linux.die.net/man/4/epoll"&gt;epoll&lt;/a&gt; 的功能. 这篇文章通过3个例子来大致介绍如何使用它. &lt;a href="http://scotdoyle.com/"&gt;欢迎提问和反馈&lt;/a&gt;.
 &lt;/p&gt;
 &lt;div id="socket"&gt;
 &lt;h2&gt;
 阻塞式socket通讯
 &lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;
 第一个例子是一个简单的python3.0版本的服务器代码, 监听8080端口的http请求, 打印结果到命令行, 回应http response给客户端.
&amp;lt;/p&amp;gt;

&amp;lt;ul&amp;gt;
 &amp;lt;li&amp;gt;
 行 9: 建立服务器的socket
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 10: 允许11行的bind()操作, 即使其他程序也在监听同样的端口. 不然的话, 这个程序只能在其他程序停止使用这个端口之后的1到2分钟后才能执行.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 11: 绑定socket到这台机器上所有IPv4地址上的8080端口.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 12: 告诉服务器开始响应从客户端过来的连接请求.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 14: 程序会一直停在这里, 直到建立了一个连接. 这个时候, 服务器socket会建立一个新的socket, 用来和客户端通讯. 这个新的socket是accept()的返回值, address对象标示了客户端的IP地址和端口.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 15-17: 接收数据, 直到一个完整的http请求被接收完毕. &amp;lt;a href=&amp;quot;http://www.jmarshall.com/easy/http/&amp;quot;&amp;gt;这是一个简单的http服务器实现&amp;lt;/a&amp;gt;.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 18: 为了方便验证, 打印客户端过来的请求到命令行.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 19: 发送回应.
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;
 行 20-22: 关闭连接, 以及服务器的监听socket.
 &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>【ASP.net文档】用C#实现HTTP协议下的多线程文件传输</title><link>https://fukun.org/archives/10041453.html</link><pubDate>Tue, 04 Oct 2011 07:08:57 +0800</pubDate><guid>https://fukun.org/archives/10041453.html</guid><description>&lt;p&gt;很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历，这些软件的使用可以大大加速互联网上文件的传输速度，减少文件传输的时间。这些软件为什么有如此大的魔力呢？其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序，也能够快速的在互联网上下载文件，那一定是非常愉快的事情。下面介绍一下如何利用C#语言编写一个支持多线程下载文件的程序，你会看到利用C#语言编写网络应程序是多么的容易，从中也能体会到C#语言中强大的网络功能。&lt;/p&gt;
&lt;p&gt;首先介绍一下HTTP协议，HTTP亦即Hpyer Text Transfer Protocal的缩写，它是现代互联网上最重要的一种网络协议，超文本传输协议位于TCP/IP协议的应用层，是一个面向无连接、简单、快速的C/S结构的协议。HTTP的工作过程大体上分连接、请求、响应和断开连接四个步骤。C#语言对HTTP协议提供了良好的支持，在.NET类库中提供了WebRequest和WebResponse类，这两个类都包含在System.Net命名空间中，利用这两个类可以实现很多高级的网络功能，本文中多线程文件下载就是利用这两个类实现的。 WebRequest和WebResponse都是抽象基类，因此在程序中不能直接作为对象使用，必须被继承，实际使用中，可根据URI参数中的URI前缀选用它们合适的子类，对于HTTP这类URI,HttpWebRequest和HttpWebResponse类可以用于处理客户程序同WEB服务器之间的HTTP通讯。&lt;/p&gt;</description></item><item><title>浏览器加载和渲染html的顺序,如何加快HTML页面加载速度</title><link>https://fukun.org/archives/10031448.html</link><pubDate>Mon, 03 Oct 2011 01:51:07 +0800</pubDate><guid>https://fukun.org/archives/10031448.html</guid><description>&lt;p&gt;&lt;strong&gt;1，页面减肥&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;页面的肥瘦是影响加载速度最重要的因素&lt;/p&gt;
&lt;p&gt;删除不必要的空格、注释&lt;/p&gt;
&lt;p&gt;将inline的script和css移到外部文件&lt;/p&gt;
&lt;p&gt;可以使用HTML Tidy来给HTML减肥，还可以使用一些压缩工具来给JavaScript减肥&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2，减少文件数量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;减少页面上引用的文件数量可以减少HTTP连接数&lt;/p&gt;
&lt;p&gt;许多JavaScript、CSS文件可以合并最好合并，人家财帮子都把自己的JavaScript functions和Prototype.js合并到一个base.js文件里去了&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3，减少域名查询&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DNS查询和解析域名也是消耗时间的，所以要减少对外部JavaScript、CSS、图片等资源的引用，不同域名的使用越少越好&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4，缓存重用数据&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;使用缓存吧&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5，优化页面元素加载顺序&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;首先加载页面最初显示的内容和与之相关的JavaScript和CSS&lt;/p&gt;
&lt;p&gt;然后加载DHTML相关的东西&lt;/p&gt;
&lt;p&gt;像什么不是最初显示相关的图片、flash、视频等很肥的资源就最后加载&lt;/p&gt;</description></item><item><title>什么是VIE？</title><link>https://fukun.org/archives/10011439.html</link><pubDate>Sat, 01 Oct 2011 04:32:14 +0800</pubDate><guid>https://fukun.org/archives/10011439.html</guid><description>&lt;h1 id="vie模式"&gt;VIE模式&lt;/h1&gt;
&lt;div id="lemmaContent-0-main-content"&gt;
 　　 　　VIE模式（（Variable Interest Entities，直译为“可变利益实体”），在国内被称为“协议控制”，是指境外注册的上市实体与境内的业务运营实体相分离，境外的上市实体通过协议的方式控制境内的业务实体，业务实体就是上市实体的VIEs（可变利益实体）。 　　新浪是第一个使用VIE模式的公司。 　　我国1993年时的电信法规规定：禁止外商介入电信运营和电信增值服务，而当时信息产业部的政策性指导意见是，外商不能提供网络信息服务（ICP），但可以提供技术服务。 　　为了海外融资的需要，新浪找到了一条变通的途径：外资投资者通过入股离岸控股公司A来控制设在中国境内的技术服务公司B，B再通过独家服务合作协议的方式，把境内电信增值服务公司C和A连接起来，达到A可以合并C公司报表的目的。 　　2000年，新浪以VIE模式成功实现美国上市，VIE甚至还得名“新浪模式”。 　　新浪模式随后被一大批中国互联网公司效仿，搜狐、百度等均以VIE模式成功登陆境外资本市场。2007年11月，阿里巴巴也以这一方式实现在香港上市。 　　除了互联网，10余年来，到境外上市传媒、教育、消费、广电类的企业也纷纷采纳这一模式。而随着VIE的风行，美国通用会计准则（GAPP）也专门为此设计了“VIE会计准则”，允许在美上市的公司合并其在中国国内协议控制的企业报表，这一举措解决了困扰中国公司的财报难题。据不完全统计，从2000年至今，通过VIE模式实现境外上市的内资企业约有250家。
&lt;/div&gt;
&lt;div&gt;
 &lt;p&gt;
 　　 　　 简而言之，VIE的运用可以简单理解为：你在北京一年，不满足买房条件，然后你和卖家签订一份50年的出租协议（租金一次性给清），然后你搬进去住了。具体有两种VIE模式，分别是借助海外壳公司上市以及非人民币基金投资国内限制行业。
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>别忘了给自己挖一口井</title><link>https://fukun.org/archives/09301436.html</link><pubDate>Fri, 30 Sep 2011 02:37:18 +0800</pubDate><guid>https://fukun.org/archives/09301436.html</guid><description>&lt;p&gt;两个和尚住在相邻两座山的庙里，每天都会在同一时间下山去溪边挑水。突然有一天，A发现B没有下山挑水了，第一天他没在意，第二天还是不见B下山。一星期 过去了，A担心起来，心想B不会是生病了吧。他跑到B的山上一看，B在打太极，一点不像没喝水的样子。他好奇了，问：“难道你不用喝水了吗?”B带他到后 院,指着一口井说: “这五年来，我每天做完功课，都会抽空挖这口井。即使有时很忙。能挖多少就算多少。如今，我终于挖出了水，就不必再下山挑水了，可以有更多时间练我喜欢的 太极了。”&lt;/p&gt;
&lt;p&gt;在工作领域,我们即使薪水或股票拿得再多，那也只是挑水。可别忘了把握下班后的时间，挖一口属于自己的井，培养自己另一方面的实力。昨天的努力就是今天的收获，今天的努力就是未来的希望。岁月不饶人，当年龄大了，挑不动水时，你还会有水喝吗？&lt;/p&gt;</description></item><item><title>奇虎工程师破解一卡通漏洞恶意充值遭拘役</title><link>https://fukun.org/archives/09251433.html</link><pubDate>Sun, 25 Sep 2011 02:15:46 +0800</pubDate><guid>https://fukun.org/archives/09251433.html</guid><description>&lt;p&gt;搞安全的，人品是第一位的啊。。。。。。&lt;/p&gt;
&lt;p&gt;北京奇虎科技有限公司（以下简称奇虎公司）网络工程师杨某，破解市政一卡通的系统漏洞后，帮自己和同事恶意充值2600余元。记者昨天获悉，朝阳法院以盗窃罪判处杨某拘役6个月，林某拘役5个月并宣告缓刑。&lt;/p&gt;
&lt;p&gt;　　杨某和林某案发前均为奇虎公司的网络工程师。去年12月底，杨某发现本市市政一卡通充值系统存在漏洞。他用自己的卡片试验，并破解了卡内芯片带有的系统密码，发现自己可以随意改动卡内金额。&lt;/p&gt;</description></item><item><title>回顾Facebook历次改版：均遭用户反对</title><link>https://fukun.org/archives/09221430.html</link><pubDate>Thu, 22 Sep 2011 04:44:50 +0800</pubDate><guid>https://fukun.org/archives/09221430.html</guid><description>&lt;blockquote&gt;
&lt;p&gt;Facebook今天将召开f8开发者大会，预计将对网站进行大规模改版，并增添多项新功能。美国IT网站PCWorld今天撰文，回顾了Facebook历次的改版过程，每次都会遭到用户反对。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;以下为文章概要：&lt;/p&gt;
&lt;p&gt;Facebook用户历来反对改版，最新的News Feed改版同样引发了用户的不满。新版News Feed将会按照算法给一些状态更新赋予更高的权重，而不是单纯按照时间顺序排列。&lt;/p&gt;
&lt;p&gt;事实上，遭遇用户反对完全在意料之中，倘若没有反对反倒会令人意外。在Facebook的发展历程中，曾经多次因为改版引发用户不满，这一次只是其中之一。以下则是Facebook历次改版引发的用户不满：&lt;/p&gt;</description></item><item><title>阿里巴巴B2B中国站强推实名制防欺诈</title><link>https://fukun.org/archives/09191417.html</link><pubDate>Mon, 19 Sep 2011 02:35:44 +0800</pubDate><guid>https://fukun.org/archives/09191417.html</guid><description>&lt;p&gt;新浪科技讯 9月19日上午消息，阿里巴巴B2B公司近日发布公告，在其中国站强制全面推行实名认证，若在9月23日前未完成实名认证，将不得继续发布商品信息。&lt;/p&gt;
&lt;p&gt;这份《关于规范阿里巴巴中国站用户身份信息的公告》称：自2011年9月23日起，用户(包括已注册会员或新注册会员)若需在阿里巴巴中国站发布产品供应信息，则用户身份须审查通过后方可。&lt;/p&gt;</description></item><item><title>死巫婆拍卖网“邪恶的Ebay”</title><link>https://fukun.org/archives/09181422.html</link><pubDate>Sun, 18 Sep 2011 04:27:30 +0800</pubDate><guid>https://fukun.org/archives/09181422.html</guid><description>&lt;p&gt;有这样一家拍卖网，一台47英寸的LG彩电，成交价只有230多块人民币；一个售价1100美元的尼康相机46美元成交，或一台售价1300美元的惠普笔记本电脑104美元就能到手……&lt;/p&gt;
&lt;p&gt;在“死巫婆拍卖网”，这种事太多了。&lt;/p&gt;
&lt;p&gt;这家有着“邪恶”名字的竞拍公司于2005年在慕尼黑创立，提供品牌电子产品，如彩电、笔记本电脑、照相机、手机等给网友竞拍。&lt;/p&gt;
&lt;p&gt;弗朗克·汉是死巫婆德国母公司娱乐购物北美区总经理，他正在查看最近的交易记录：一台47英寸的LG彩电，成交价230元；售价1100美元的尼康相机，46美元成交；售价1300美元的惠普笔记本电脑，104美元……&lt;/p&gt;</description></item><item><title>grep匹配TAB的四种写法</title><link>https://fukun.org/archives/09161428.html</link><pubDate>Fri, 16 Sep 2011 07:26:21 +0800</pubDate><guid>https://fukun.org/archives/09161428.html</guid><description>&lt;div id="blog_text"&gt;
 &lt;p&gt;
 1、grep -P &amp;#8216;t&amp;#8217;
 &lt;/p&gt;
 &lt;p&gt;
 2、grep [[:space:]] // 所有空白字符
 &lt;/p&gt;
 &lt;p&gt;
 3、直接grep tab字符 // 命令行下用&amp;#8221;ESC TAB&amp;#8221;输入
 &lt;/p&gt;
 &lt;p&gt;
 4、grep $&amp;#8217;t&amp;#8217;
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>php header 实现下载文件</title><link>https://fukun.org/archives/09151409.html</link><pubDate>Thu, 15 Sep 2011 09:44:54 +0800</pubDate><guid>https://fukun.org/archives/09151409.html</guid><description>&lt;p&gt;php header 实现下载文件&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;header("Content-Type:application/octet-stream; charset=utf-8");
header("Content-Disposition: attachment; filename='{$stat_date}_rbt数据.xls'"); 
header( "Content-Description: PHP3 Generated Data "); 
&lt;/pre&gt;</description></item><item><title>header Content-Type类型列表</title><link>https://fukun.org/archives/09141412.html</link><pubDate>Wed, 14 Sep 2011 10:05:48 +0800</pubDate><guid>https://fukun.org/archives/09141412.html</guid><description>&lt;p&gt;header Content-Type类型列表&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$mimetypes = array(
'ez' =&amp;gt; 'application/andrew-inset',
'hqx' =&amp;gt; 'application/mac-binhex40',
'cpt' =&amp;gt; 'application/mac-compactpro',
'doc' =&amp;gt; 'application/msword',
'bin' =&amp;gt; 'application/octet-stream',
'dms' =&amp;gt; 'application/octet-stream',
'lha' =&amp;gt; 'application/octet-stream',
'lzh' =&amp;gt; 'application/octet-stream',
'exe' =&amp;gt; 'application/octet-stream',
'class' =&amp;gt; 'application/octet-stream',
'so' =&amp;gt; 'application/octet-stream',
'dll' =&amp;gt; 'application/octet-stream',
'oda' =&amp;gt; 'application/oda',
'pdf' =&amp;gt; 'application/pdf',
'ai' =&amp;gt; 'application/postscript',
'eps' =&amp;gt; 'application/postscript',
'ps' =&amp;gt; 'application/postscript',
'smi' =&amp;gt; 'application/smil',
'smil' =&amp;gt; 'application/smil',
'mif' =&amp;gt; 'application/vnd.mif',
'xls' =&amp;gt; 'application/vnd.ms-excel',
'ppt' =&amp;gt; 'application/vnd.ms-powerpoint',
'wbxml' =&amp;gt; 'application/vnd.wap.wbxml',
'wmlc' =&amp;gt; 'application/vnd.wap.wmlc',
'wmlsc' =&amp;gt; 'application/vnd.wap.wmlscriptc',
'bcpio' =&amp;gt; 'application/x-bcpio',
'vcd' =&amp;gt; 'application/x-cdlink',
'pgn' =&amp;gt; 'application/x-chess-pgn',
'cpio' =&amp;gt; 'application/x-cpio',
'csh' =&amp;gt; 'application/x-csh',
'dcr' =&amp;gt; 'application/x-director',
'dir' =&amp;gt; 'application/x-director',
'dxr' =&amp;gt; 'application/x-director',
'dvi' =&amp;gt; 'application/x-dvi',
'spl' =&amp;gt; 'application/x-futuresplash',
'gtar' =&amp;gt; 'application/x-gtar',
'hdf' =&amp;gt; 'application/x-hdf',
'js' =&amp;gt; 'application/x-javascript',
'skp' =&amp;gt; 'application/x-koan',
'skd' =&amp;gt; 'application/x-koan',
'skt' =&amp;gt; 'application/x-koan',
'skm' =&amp;gt; 'application/x-koan',
'latex' =&amp;gt; 'application/x-latex',
'nc' =&amp;gt; 'application/x-netcdf',
'cdf' =&amp;gt; 'application/x-netcdf',
'sh' =&amp;gt; 'application/x-sh',
'shar' =&amp;gt; 'application/x-shar',
'swf' =&amp;gt; 'application/x-shockwave-flash',
'sit' =&amp;gt; 'application/x-stuffit',
'sv4cpio' =&amp;gt; 'application/x-sv4cpio',
'sv4crc' =&amp;gt; 'application/x-sv4crc',
'tar' =&amp;gt; 'application/x-tar',
'tcl' =&amp;gt; 'application/x-tcl',
'tex' =&amp;gt; 'application/x-tex',
'texinfo' =&amp;gt; 'application/x-texinfo',
'texi' =&amp;gt; 'application/x-texinfo',
't' =&amp;gt; 'application/x-troff',
'tr' =&amp;gt; 'application/x-troff',
'roff' =&amp;gt; 'application/x-troff',
'man' =&amp;gt; 'application/x-troff-man',
'me' =&amp;gt; 'application/x-troff-me',
'ms' =&amp;gt; 'application/x-troff-ms',
'ustar' =&amp;gt; 'application/x-ustar',
'src' =&amp;gt; 'application/x-wais-source',
'xhtml' =&amp;gt; 'application/xhtml+xml',
'xht' =&amp;gt; 'application/xhtml+xml',
'zip' =&amp;gt; 'application/zip',
'au' =&amp;gt; 'audio/basic',
'snd' =&amp;gt; 'audio/basic',
'mid' =&amp;gt; 'audio/midi',
'midi' =&amp;gt; 'audio/midi',
'kar' =&amp;gt; 'audio/midi',
'mpga' =&amp;gt; 'audio/mpeg',
'mp2' =&amp;gt; 'audio/mpeg',
'mp3' =&amp;gt; 'audio/mpeg',
'aif' =&amp;gt; 'audio/x-aiff',
'aiff' =&amp;gt; 'audio/x-aiff',
'aifc' =&amp;gt; 'audio/x-aiff',
'm3u' =&amp;gt; 'audio/x-mpegurl',
'ram' =&amp;gt; 'audio/x-pn-realaudio',
'rm' =&amp;gt; 'audio/x-pn-realaudio',
'rpm' =&amp;gt; 'audio/x-pn-realaudio-plugin',
'ra' =&amp;gt; 'audio/x-realaudio',
'wav' =&amp;gt; 'audio/x-wav',
'pdb' =&amp;gt; 'chemical/x-pdb',
'xyz' =&amp;gt; 'chemical/x-xyz',
'bmp' =&amp;gt; 'image/bmp',
'gif' =&amp;gt; 'image/gif',
'ief' =&amp;gt; 'image/ief',
'jpeg' =&amp;gt; 'image/jpeg',
'jpg' =&amp;gt; 'image/jpeg',
'jpe' =&amp;gt; 'image/jpeg',
'png' =&amp;gt; 'image/png',
'tiff' =&amp;gt; 'image/tiff',
'tif' =&amp;gt; 'image/tiff',
'djvu' =&amp;gt; 'image/vnd.djvu',
'djv' =&amp;gt; 'image/vnd.djvu',
'wbmp' =&amp;gt; 'image/vnd.wap.wbmp',
'ras' =&amp;gt; 'image/x-cmu-raster',
'pnm' =&amp;gt; 'image/x-portable-anymap',
'pbm' =&amp;gt; 'image/x-portable-bitmap',
'pgm' =&amp;gt; 'image/x-portable-graymap',
'ppm' =&amp;gt; 'image/x-portable-pixmap',
'rgb' =&amp;gt; 'image/x-rgb',
'xbm' =&amp;gt; 'image/x-xbitmap',
'xpm' =&amp;gt; 'image/x-xpixmap',
'xwd' =&amp;gt; 'image/x-xwindowdump',
'igs' =&amp;gt; 'model/iges',
'iges' =&amp;gt; 'model/iges',
'msh' =&amp;gt; 'model/mesh',
'mesh' =&amp;gt; 'model/mesh',
'silo' =&amp;gt; 'model/mesh',
'wrl' =&amp;gt; 'model/vrml',
'vrml' =&amp;gt; 'model/vrml',
'css' =&amp;gt; 'text/css',
'html' =&amp;gt; 'text/html',
'htm' =&amp;gt; 'text/html',
'asc' =&amp;gt; 'text/plain',
'txt' =&amp;gt; 'text/plain',
'rtx' =&amp;gt; 'text/richtext',
'rtf' =&amp;gt; 'text/rtf',
'sgml' =&amp;gt; 'text/sgml',
'sgm' =&amp;gt; 'text/sgml',
'tsv' =&amp;gt; 'text/tab-separated-values',
'wml' =&amp;gt; 'text/vnd.wap.wml',
'wmls' =&amp;gt; 'text/vnd.wap.wmlscript',
'etx' =&amp;gt; 'text/x-setext',
'xsl' =&amp;gt; 'text/xml',
'xml' =&amp;gt; 'text/xml',
'mpeg' =&amp;gt; 'video/mpeg',
'mpg' =&amp;gt; 'video/mpeg',
'mpe' =&amp;gt; 'video/mpeg',
'qt' =&amp;gt; 'video/quicktime',
'mov' =&amp;gt; 'video/quicktime',
'mxu' =&amp;gt; 'video/vnd.mpegurl',
'avi' =&amp;gt; 'video/x-msvideo',
'movie' =&amp;gt; 'video/x-sgi-movie',
'ice' =&amp;gt; 'x-conference/x-cooltalk',
);
&lt;/pre&gt;</description></item><item><title>2011年度程序员节快乐</title><link>https://fukun.org/archives/09131406.html</link><pubDate>Tue, 13 Sep 2011 04:51:14 +0800</pubDate><guid>https://fukun.org/archives/09131406.html</guid><description>&lt;p&gt;新闻来源:solidot&lt;/p&gt;
&lt;p&gt;亲爱的开发者们(Dear Hackers/Engineers/Programmers)，距离上一次程序员节又是一年了， 这一年中我们辛苦的编写着代码，我们为无数死气沉沉的软件注入灵魂，我们(Programmer)在无数的夜晚编写着代码，我们(Engineer)为了 软件架构的问题(选择适合的自由软件代码和思考是否亲自实现某些模块)绞尽脑汁，当然我们也和酱缸教的老板们展开了有趣的博弈。 不管怎么样，过去一年的经 历让我们变得更加的强壮。在过去的一年里Linux kernel走过了20年，id software也走过了20年(无数的hacker正在等着Doom III源代码去创造更多的游戏)，Phrack走过了25年…&lt;/p&gt;
&lt;p&gt;但愿在新的一年里我们继续沿着代码和框架的hacking之路前进，不论前方的敌人有多么强大，创造强大敌人的设计者会站在我们的一边。外星人说:”程序设计是神圣的职业，因为是我们为地球人创造了她。“&lt;/p&gt;</description></item><item><title>rsync 排除指定目录或文件进行同步</title><link>https://fukun.org/archives/09081402.html</link><pubDate>Thu, 08 Sep 2011 07:07:34 +0800</pubDate><guid>https://fukun.org/archives/09081402.html</guid><description>&lt;div&gt;
 很常见的情况：我想同步/myweb下的 一些php文件 ，  但是不想复制/myweb/log/里边的一些日志文件，因为这些文件太大了，备份也是没有意义的。 现在如果想避开某个路径  直接添加—exclude 即可 比如—exclude “./log” –exclude ‘./log/file’
&lt;/div&gt;
&lt;div&gt;
 &lt;p&gt;
 &lt;strong&gt;Note&lt;/strong&gt;: the directory path is relative to the folder you are backing up.
 &lt;/p&gt;
 &lt;p&gt;
 rsync备份时排除指定目录或文件
 &lt;/p&gt;
 &lt;p&gt;
 要排除指定目录，可以在客户端命令行中使用–exclude-from命令
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>Linux rsync用法 目录同步功能的实现</title><link>https://fukun.org/archives/09071399.html</link><pubDate>Wed, 07 Sep 2011 07:04:09 +0800</pubDate><guid>https://fukun.org/archives/09071399.html</guid><description>&lt;div&gt;
 &lt;div&gt;
 实现目标:
 &lt;/div&gt;
 &lt;div&gt;
 A 服务器上 /opt/web 目录,与B服务器上 /opt/web目录实现同步。即：B主动与A进行同步。
 &lt;/div&gt;
 &lt;div&gt;
 OS: Redhat AS4
 &lt;/div&gt;
 &lt;div&gt;
 A Server  192.168.1.2 /opt/web
 &lt;/div&gt;
 &lt;div&gt;
 B Server  192.168.1.3 /opt/web
 &lt;/div&gt;
 &lt;div&gt;
 一. A Server config
 &lt;/div&gt;
 &lt;div&gt;
 1.rsync 系统自带, 需要使用 &amp;#8211;deamon 方式进行启动,服务端口是 TCP 873
 &lt;/div&gt;
 &lt;div&gt;
 2. vi /etc/xinetd.d/rsync  修改 disable =yes 为 disable =no ,修改后的文件如下
 &lt;/div&gt;
 &lt;div&gt;
 # default: off
 &lt;/div&gt;
 &lt;div&gt;
 # description: The rsync server is a good addition to an ftp server, as it
 &lt;/div&gt;
 &lt;div&gt;
 #       allows crc checksumming etc.
 &lt;/div&gt;
 &lt;div&gt;
 service rsync
 &lt;/div&gt;
 &lt;div&gt;
 {
 &lt;/div&gt;
 &lt;div&gt;
 disable = no
 &lt;/div&gt;
 &lt;div&gt;
 socket_type     = stream
 &lt;/div&gt;
 &lt;div&gt;
 wait            = no
 &lt;/div&gt;
 &lt;div&gt;
 user            = root
 &lt;/div&gt;
 &lt;div&gt;
 server          = /usr/bin/rsync
 &lt;/div&gt;
 &lt;div&gt;
 server_args     = &amp;#8211;daemon
 &lt;/div&gt;
 &lt;div&gt;
 log_on_failure  += USERID
 &lt;/div&gt;
 &lt;div&gt;
 }
 &lt;/div&gt;
 &lt;div&gt;</description></item><item><title>Apache如何解决Parent: child process exited with status 3221225477 — Restarting.</title><link>https://fukun.org/archives/09061395.html</link><pubDate>Tue, 06 Sep 2011 05:04:25 +0800</pubDate><guid>https://fukun.org/archives/09061395.html</guid><description>&lt;p&gt;Apache错误日志：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[Tue Sep 06 11:52:43 2011] [notice] Parent: child process exited with status 3221225477 -- Restarting.
&lt;/pre&gt;
&lt;p&gt;当发生错误3221225477时，解决办法是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;复制php5目录下的php5apache2_2.dll和libmysql.dll两个dll文件到c盘的windows/system32目录下，然后重启Apache server.注意php5apache2_2.dll文件的选择，是根据Apache版本来的，如果你的Apache采用的是旧版本，请尝试对应的DLL文件php5apache2.dll或者php5apache.dll&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Linux核心开发团队网站遭黑客入侵埋木马</title><link>https://fukun.org/archives/09051391.html</link><pubDate>Mon, 05 Sep 2011 01:48:28 +0800</pubDate><guid>https://fukun.org/archives/09051391.html</guid><description>&lt;p&gt;据国外媒体报道，Linux核心开发团队本在官方网站公布一则消息，表示该团队在8/28发现黑客入侵，该名黑客取得网站最高权限root，并埋入一个木马。&lt;/p&gt;
&lt;p&gt;Linux核心开发团队怀疑黑客窃取认证进入系统，再使用rootkit工具取得root权限，但截至目前为止还不清楚其手法。黑客入侵后修改SSH连线后的相关设定，并埋入一个木马程序到系统开机启动程序中。&lt;/p&gt;</description></item><item><title>如何把Editplus的配置环境转到另一台机器上</title><link>https://fukun.org/archives/09021382.html</link><pubDate>Fri, 02 Sep 2011 07:05:38 +0800</pubDate><guid>https://fukun.org/archives/09021382.html</guid><description>&lt;p&gt;工作的时候都用Editplus，配置了很多工作环境和工具，现在要更换一台电脑，但是把Editplus拷贝过去之后发现，所有的环境都没了。&lt;/p&gt;
&lt;p&gt;再配置的话太麻烦了，好多ftp服务器，工具路径和用法。。如何才能直接把环境复制过去呢？&lt;/p&gt;
&lt;p&gt;经查找，发现C:Documents and SettingsAdministratorApplication Data文件夹下有多个INI配置文件&lt;/p&gt;
&lt;div id="attachment_1383" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/09/110902_editplus_path.jpg"&gt;&lt;img class="size-large wp-image-1383" title="110902_editplus_path" src="//fukun.org/wp-content/uploads/2011/09/110902_editplus_path-600x124.jpg" alt="Editplus INI配置文件" width="600" height="124" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Editplus INI配置文件
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;看到名字大概也能知道都是做什么的了，有模版、FTP、工具等的设置，只要把这些ini文件复制到新机器上的该目录下就可以了。&lt;/p&gt;</description></item><item><title>Asp.net中的ViewState用法</title><link>https://fukun.org/archives/09011385.html</link><pubDate>Thu, 01 Sep 2011 07:57:20 +0800</pubDate><guid>https://fukun.org/archives/09011385.html</guid><description>&lt;p&gt;基本理论：&lt;/p&gt;
&lt;p&gt;session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重. 而viewstate由于只是将数据存入到页面隐藏控件里,不再占用服务器资源,因此, 我们可以将一些需要服务器”记住”的变量和对象保存到viewstate里面. 而sesson则只应该应用在需要跨页面且与每个访问用户相关的变量和对象存储上. 另外,session在默认情况下20分钟就过期,而viewstate则永远不会过期.&lt;/p&gt;</description></item><item><title>黑客定罪标准确定：窃50组网银密码最高判7年</title><link>https://fukun.org/archives/08301378.html</link><pubDate>Tue, 30 Aug 2011 04:37:36 +0800</pubDate><guid>https://fukun.org/archives/08301378.html</guid><description>&lt;p&gt;昨天，最高人民法院和最高人民检察院联合发布《关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释》。该司法解释规定，黑客非法获取支付结算、证券交易、期货交易等网络金融服务的账号、口令、密码等信息10组以上，可处3年以下有期徒刑等刑罚，获取上述信息50组以上的，处3年以上7年以下有期徒刑。&lt;/p&gt;</description></item><item><title>apache 的 5分钟</title><link>https://fukun.org/archives/08261373.html</link><pubDate>Fri, 26 Aug 2011 03:55:49 +0800</pubDate><guid>https://fukun.org/archives/08261373.html</guid><description>&lt;p&gt;用snoopy制作一个采集程序，这个程序逻辑上需要由业务人员来手动开启采集，所以只能制作成web页面的，但是在采集过程中，却遇到了一个问题：&lt;/p&gt;
&lt;p&gt;由于采集的数据量很大， 需要Apache很长时间去响应，当超过5分钟的时候，会发生超时，即使程序中设置set_time_limit()也没有效果。当超时后，web页面会显示服务器错误，但是通过后台监控，发现抓取程序其实还在运行，并且运行第二次，这样就会导致这个程序运行了两遍。又检查了Apache日志，发现每次请求超时（5分钟）后，Apache会很快再次发起一个请求，导致了程序的二次运行。&lt;/p&gt;</description></item><item><title>苹果董事会宣布乔布斯辞去CEO 库克接任</title><link>https://fukun.org/archives/08251365.html</link><pubDate>Thu, 25 Aug 2011 00:33:26 +0800</pubDate><guid>https://fukun.org/archives/08251365.html</guid><description>&lt;p&gt;北京时间8月25日消息，据国外媒体报道，苹果董事会今天宣布，公司标志性的人物史蒂夫·乔布斯即将卸任首席执行官一职。目前乔布斯正饱受病痛的困扰，不过，他仍将担任苹果董事会主席职务。苹果董事会还同时宣布，公司首席运营官蒂姆·库克将接替乔布斯，担任苹果新任首席执行官。&lt;/p&gt;
&lt;p&gt;在致苹果董事会的一封信函中，已经健康状况不佳而自今年1月以来一直休假的乔布斯作出了这样的表述——“如果有一天我无法再胜任，也无法满足公司对我作为首席执行官的期待，那会将提前告诉大家，非常不幸的是，这一天已经来临。”&lt;/p&gt;</description></item><item><title>Linux/Unix下 查看/监测网卡流量的命令</title><link>https://fukun.org/archives/08241369.html</link><pubDate>Wed, 24 Aug 2011 06:36:01 +0800</pubDate><guid>https://fukun.org/archives/08241369.html</guid><description>&lt;p&gt;Linux/Unix下 查看/监测网卡流量的命令:&lt;/p&gt;
&lt;p&gt;第一种：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;$ watch more /proc/net/dev
&lt;/pre&gt;
&lt;div id="attachment_1370" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/08/110826_linux_watch_ifconfig.jpg"&gt;&lt;img class="size-large wp-image-1370" title="110826_linux_watch_ifconfig" src="//fukun.org/wp-content/uploads/2011/08/110826_linux_watch_ifconfig-600x166.jpg" alt="Linux 查看网卡流量" width="600" height="166" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Linux 查看网卡流量
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>不要偷黑客的东西</title><link>https://fukun.org/archives/08231354.html</link><pubDate>Tue, 23 Aug 2011 09:58:24 +0800</pubDate><guid>https://fukun.org/archives/08231354.html</guid><description>&lt;blockquote&gt;
&lt;p&gt;本月初，英国发生了严重的暴乱事件，打砸抢烧现象十分的严重，英国警方逮捕了3000多参与暴乱的民众。下面的这个故事就是发生在此期间。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2011/08/110823_hack_steal_1_2.jpg"&gt;&lt;img class="aligncenter size-full wp-image-1355" title="110823_hack_steal_1_2" src="//fukun.org/wp-content/uploads/2011/08/110823_hack_steal_1_2.jpg" alt="不要偷黑客的东西" width="527" height="331" srcset="//fukun.org/wp-content/uploads/2011/08/110823_hack_steal_1_2.jpg 527w, //fukun.org/wp-content/uploads/2011/08/110823_hack_steal_1_2-300x188.jpg 300w" sizes="(max-width: 527px) 100vw, 527px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;伦敦暴乱的第二天早上，我回到我的住所、发现这里被洗劫了，我的Macbook Pro笔记本电脑被他们偷走！&lt;/p&gt;
&lt;p&gt;警察来了，做了记录，采集了指纹，对案情进行了常规的分析 … 有一点他们没有意料到的是，我在电脑里装了一个开源的跟踪软件，是从http://preyproject.com下载的。&lt;/p&gt;</description></item><item><title>Memcached深度分析</title><link>https://fukun.org/archives/08221362.html</link><pubDate>Mon, 22 Aug 2011 09:16:21 +0800</pubDate><guid>https://fukun.org/archives/08221362.html</guid><description>&lt;p&gt;Memcached是danga.com（运营LiveJournal的技术团队）开发的一套分布式内存对象缓存系统，用于在动态系统中减少数据库负载，提升性能。关于这个东西，相信很多人都用过，本文意在通过对memcached的实现及代码分析，获得对这个出色的开源软件更深入的了解，并可以根据我们的需要对其进行更进一步的优化。末了将通过对BSM_Memcache扩展的分析，加深对memcached的使用方式理解。&lt;/p&gt;
&lt;p&gt;本文的部分内容可能需要比较好的数学基础作为辅助。&lt;/p&gt;</description></item><item><title>新浪4000万美元入股土豆网获4%股权</title><link>https://fukun.org/archives/08211350.html</link><pubDate>Sun, 21 Aug 2011 01:32:18 +0800</pubDate><guid>https://fukun.org/archives/08211350.html</guid><description>&lt;p&gt;8月21日，土豆网知情人士向《第一财经日报》透露，新浪入股土豆的投资协议近日已签署。新浪获得了土豆网 约4%的股权，对价约4000万美元。该人士还称，入股的同时，新浪还可能通过与土豆战略合作的方式，把规模不大的自有视频业务交与土豆网托管运营。对上 述消息，新浪相关人士未作评论。&lt;/p&gt;
&lt;p&gt;而截至上周五，土豆再度大跌7.54%，以每股19.24美元报收，市值只为5.5亿美元，这比新浪入股时的10亿美元估值低了将近一半。&lt;/p&gt;</description></item><item><title>惠普宣布放弃webOS手机及平板电脑</title><link>https://fukun.org/archives/08191348.html</link><pubDate>Fri, 19 Aug 2011 01:36:54 +0800</pubDate><guid>https://fukun.org/archives/08191348.html</guid><description>&lt;p&gt;北京时间8月19日消息，据国外媒体报道，惠普周四下午宣布，公司计划终止webOS设备，包括Pre手机和TouchPad平板电脑。&lt;/p&gt;
&lt;p&gt;惠普在当地时间周四下午美股即将收盘时宣布了这一消息，并同时发布了第三财季初步统计的业绩。惠普表示，公司以后将继续寻求优化webOS软件的可能性。惠普去年以12亿美元现金收购了Palm，并同时获得了webOS移动操作系统。据媒体报道，TouchPad上个月刚上市，但销量一直不佳。&lt;/p&gt;
&lt;p&gt;董事会已经授权惠普管理层探讨处置PSG的各种选择。惠普在一份声明中说，“惠普将考虑各种可能性，其中包括通过剥离或其他交易，使PSG完全或部分独立于惠普。”PSG产品包括智能手机、平板电脑和PC等。&lt;/p&gt;</description></item><item><title>新浪二季度净利润1000万美元 同比下滑60.3%</title><link>https://fukun.org/archives/08181342.html</link><pubDate>Thu, 18 Aug 2011 01:37:48 +0800</pubDate><guid>https://fukun.org/archives/08181342.html</guid><description>&lt;p&gt;北京时间8月18日消息，据国外媒体报道，新浪（纳斯达克证券代码：SINA）周三发布了该公 司截至2011年6月30日的第二季度未经审计财报。财报显示，新浪第二季度净营收同比增长20.0%，到达1.19美元；净利润为1000万美元，合每 股收益0.15美元，较去年同期的2520万美元下滑60.3%。&lt;/p&gt;</description></item><item><title>Google收购MOTO后仍坚定的走开放之路</title><link>https://fukun.org/archives/08171339.html</link><pubDate>Wed, 17 Aug 2011 08:20:34 +0800</pubDate><guid>https://fukun.org/archives/08171339.html</guid><description>&lt;p&gt;一夜之间，MOTO从Google的表亲升级到了“同血统”、“亲儿子”，Google瞬间从裁判员变身成运动员。&lt;/p&gt;
&lt;p&gt;Google以125亿现金收购MOTO移动，如同一块巨石，让移动行业瞬间掀起千层浪。人们在惊叹Google现金储备如此丰厚的同时，开始对Google和MOTO的命运化起无数疑问号。甚至有评论称Google将就此放弃开源之路，走向封闭。其实这种担心大可不必，对于普通用户而言，未来，Google还将是那个开放的绿色机器人，MOTO还将是那个在机器人时代耕种的MOTO。&lt;/p&gt;
&lt;p&gt;并购后，普通用户脑海里浮现的第一个问题一定是Andriod以后只能在MOTO上运行了？Google高级副总裁安迪鲁宾在并购电话会议上就给出了答案：“安卓的理念不会改变，它将继续成为一个开放平台和充满生气的开放源码社区。我们会继续和各安卓的设备厂商合作，开发和提供具有革新意义的安卓设备。”&lt;/p&gt;</description></item><item><title>美博客称谷歌摩托移动交易可能成为一场灾难</title><link>https://fukun.org/archives/08161337.html</link><pubDate>Tue, 16 Aug 2011 02:09:54 +0800</pubDate><guid>https://fukun.org/archives/08161337.html</guid><description>&lt;p&gt;8月16日消息，美国IT博客网站Business Insider评论谷歌摩托罗拉移动交易称，“这笔交易最终可能成为一场灾难”。&lt;/p&gt;
&lt;p&gt;以下为博客文章摘要：&lt;/p&gt;
&lt;p&gt;今天上午谷歌做出了一个非常有趣的举动——斥资125亿美元购买手机硬件制造商摩托罗拉公司。&lt;/p&gt;
&lt;p&gt;但是，让我们面对现实：这笔交易最终可能成为一场灾难。&lt;/p&gt;
&lt;p&gt;怎么会？&lt;/p&gt;
&lt;p&gt;首先，这笔交易主要导致了渠道的冲突：谷歌此举是在与他的合作伙伴竞争。和谷歌的核心业务相比，硬件制造是一个完全不同的行业。硬件制造业是一个蹩脚的，低利润的业务。摩托罗拉太大了——谷歌此举刚刚将公司的规模增加了60％。交易似乎纯粹是防御性的举动，而非进攻。依此类推。&lt;/p&gt;</description></item><item><title>掉落手机的灵机一动，Jeff Bezos 申请迷你防撞气囊专利</title><link>https://fukun.org/archives/08141332.html</link><pubDate>Sun, 14 Aug 2011 11:56:42 +0800</pubDate><guid>https://fukun.org/archives/08141332.html</guid><description>&lt;p&gt;Amazon 的 CEO Jeff Bezos 肯定时常手滑摔手机，不然怎么会需要以个人名义申请一个既昂贵又极为复杂的「防撞系统」专利呢？此系统藉由智能型手机中的动态传感器来感知自由落体的发生，然后传送讯号给此专利的手机保护套，并启动防撞气囊（Airbag）防止进一步的撞击伤害。其实花这么多金钱与心思在「摔手机」当出气包的科技上，其实可以建议 Jeff 不如试着装个迷你喷射器或者是直接让手机可以浮着用不就得了？&lt;/p&gt;</description></item><item><title>亲爱的PHP，我要离开你了，因为，我对NodeJs更有感</title><link>https://fukun.org/archives/08131334.html</link><pubDate>Sat, 13 Aug 2011 13:27:50 +0800</pubDate><guid>https://fukun.org/archives/08131334.html</guid><description>&lt;p&gt;亲爱的PHP，&lt;/p&gt;
&lt;p&gt;我知道这封信不会给你惊喜。我们在一起已经有一些时日了，但是，从今天开始，我们将分道扬镳。&lt;/p&gt;
&lt;p&gt;写下这些并不容易。你和我共度了很长时间。很难相信，在10年前你就欢快的接受我，让我进入你的怀抱。你年轻，sexy，和我的前任Perl比起来，你犹如一阵清风。我们在一起没过多久，你开始给我带来效益，过去的十年，我的每一份工作都是以你为基础的。 我们拥有很多美好的时光。记不记我们上了CNN头版【1】，14天里就获得$500的进账？这些年，每一次动态创建PDF，我的脸上都会绽放出笑容。&lt;/p&gt;
&lt;p&gt;但是我们仍然有艰难的日子。我希望在我的余生里，再也不要听到这个词“register globals”（注册全局变量）。你也知道，直到现在，我还留着和你一起创建SOAP客户端的伤疤。我们谁也不能保证可靠（不知道PHP V6 发布后，以及支持UTF-8后会是怎么样的情形？）。不论如何，我们此前总是能解决分歧。&lt;/p&gt;</description></item><item><title>苹果OS X Lion系统默认壁纸被指PS过</title><link>https://fukun.org/archives/08121323.html</link><pubDate>Fri, 12 Aug 2011 07:02:39 +0800</pubDate><guid>https://fukun.org/archives/08121323.html</guid><description>&lt;p&gt;根据Cult of Mac&lt;a rel="nofollow" href="http://www.cultofmac.com/apple-used-os-x-lion-to-destroy-an-entire-galaxy-humor" target="_blank"&gt;报道&lt;/a&gt;，如果将Mac OS X 10.7 Lion的默认壁纸与“仙女座星系”的&lt;a rel="nofollow" href="http://www.robgendlerastropics.com/M31NMmosaic.html" target="_blank"&gt;真实照片&lt;/a&gt;对比，可以发现M31（仙女座星系）的卫星M110被抹掉，卫星M32仍在。美国威斯康辛大学的物理系助理教授David Kaplan首先发现这一问题，他在给Boingboing的邮件里写道：“苹果异想天开的改变了宇宙。他们将很多星星删除/移动位置了，使之摆脱了整个银河系。”&lt;/p&gt;</description></item><item><title>德国极端右翼分子被“特洛伊T恤”戏弄</title><link>https://fukun.org/archives/08111320.html</link><pubDate>Thu, 11 Aug 2011 10:43:48 +0800</pubDate><guid>https://fukun.org/archives/08111320.html</guid><description>&lt;p&gt;最近举行的一个德国极端右翼摇滚节上，有大约250件黑色T恤免费分发给了参与者。T恤上印着“骷髅图”logo和口号“Hardcore Rebels – National and Free”。当极端右翼分子洗过一次T恤后，他们发现T恤上的信息变成了“If your T-shirt can do it, so can you. We’ll help to free you from right-wing extremism（如果你的T恤能做到，你也能做到，我们将帮助你脱离极端右翼主义）”，上面还提供了联系信息以及名叫“Exit Deutschland”的组织名称，该组织旨在帮助人们脱离新纳粹。它是通过匿名捐赠者的身份向摇滚节组织者提供了“特洛伊T恤”。&lt;/p&gt;</description></item><item><title>李彦宏15年前搜索专利曝光-“超链分析技术”</title><link>https://fukun.org/archives/08101312.html</link><pubDate>Wed, 10 Aug 2011 02:11:27 +0800</pubDate><guid>https://fukun.org/archives/08101312.html</guid><description>&lt;p&gt;8月10日消息，位于弗吉尼亚州的美国专利局总部档案库的一角，存放着几页看似毫不起眼的纸张。但如果拿出去拍卖的话，这几页纸将价值连城。因为其 上记载着的，或将是全球最值钱的技术专利之一，正是它，催生并且支撑起了一个市值近600亿美金、位列全球市值第三的互联网公司——百度。&lt;/p&gt;
&lt;p&gt;这一专利名为“超链分析技术”，其作者是百度创始人、董事长兼首席执行官李彦宏。这份15年前毫不不起眼的专利，现在被业界称为当代搜索引擎的奠基石，它不仅为搜索引擎的大规模应用提供了理论基础，更预言了当今世界搜索市场格局。世界,逐渐因搜索而改变。&lt;/p&gt;</description></item><item><title>如何让 mysqldump/mysql 导入数据时忽略错误继续执行</title><link>https://fukun.org/archives/08051345.html</link><pubDate>Fri, 05 Aug 2011 09:41:07 +0800</pubDate><guid>https://fukun.org/archives/08051345.html</guid><description>&lt;p&gt;今天从excel导入数据到服务器的mysql，在本地把excel的内容拷贝到了Editplus，然后用正则把它变成了insert into 语句，在用mysql -uroot -p123456 databasename &amp;lt; filename.sql 导入的时候，被告知 ERROR 1062 (23000) at line 258: Duplicate entry (‘xx’,xx,xx,x,xxx) for key 2,违背了Unique Key，但是这种情况应该是正常的，重复键不插入，继续执行就好啦，可是它却报错并停止执行了。。&lt;/p&gt;</description></item><item><title>黑帽大会：使用OSPF协议的路由器易受攻击</title><link>https://fukun.org/archives/08041317.html</link><pubDate>Thu, 04 Aug 2011 04:30:26 +0800</pubDate><guid>https://fukun.org/archives/08041317.html</guid><description>&lt;p&gt;黑帽大会的研究员曝光了大多数企业所用路由器协议都存在的一个漏洞，该漏洞可将网络置于受攻击的危险中。攻击主要集中于泄漏数据流，伪造网络拓扑，创建有害的路由器环路。&lt;/p&gt;
&lt;p&gt;因为攻击者可能造成的危害，也因为广为使用的开放最短路径协议（OSPF）本身，网络很脆弱，问题很严重。OSPF是最流行的路由协议，该协议被用于网络所分的大约3万5千个独立系统中。&lt;/p&gt;</description></item><item><title>[Server.userException] No such operation ‘xxx’ SoapClient-&gt;__call(xxx,Array)</title><link>https://fukun.org/archives/08031309.html</link><pubDate>Wed, 03 Aug 2011 01:51:37 +0800</pubDate><guid>https://fukun.org/archives/08031309.html</guid><description>&lt;p&gt;使用SOAP调用webservice时，出现错误：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;Fatal error: Uncaught SoapFault exception: [Server.userException] No such operation 'xxx' in D:xampphtdocsxxxxxx.php:19 Stack trace: #0 [internal function]: SoapClient-&amp;gt;__call('xxx', Array) &lt;/pre&gt;
&lt;p&gt;经查找排除，发现是参数错误。修改参数数据即可。&lt;/p&gt;</description></item><item><title>Linux – cp: omitting directory 复制文件失败</title><link>https://fukun.org/archives/08021307.html</link><pubDate>Tue, 02 Aug 2011 02:40:28 +0800</pubDate><guid>https://fukun.org/archives/08021307.html</guid><description>&lt;p&gt;Linux – cp: omitting directory 复制文件失败:&lt;/p&gt;
&lt;p&gt;注意，如果执行时出现”cp: omitting directory”的提示信息，但使用mv则可以成功剪切粘贴，是由于该目录下含有子目录，这个时候需要使用 cp -r 参数来递归拷贝这些及其子文件夹下的文件。&lt;/p&gt;</description></item><item><title>归家一日游</title><link>https://fukun.org/archives/07301328.html</link><pubDate>Sat, 30 Jul 2011 09:37:24 +0800</pubDate><guid>https://fukun.org/archives/07301328.html</guid><description>&lt;div id="attachment_1329" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/08/IMG_20110730_180018.jpg"&gt;&lt;img class="size-large wp-image-1329" title="IMG_20110730_180018" src="//fukun.org/wp-content/uploads/2011/08/IMG_20110730_180018-600x450.jpg" alt="归家一日游" width="600" height="450" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 归家一日游
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>jquery用$.each处理返回的json数据</title><link>https://fukun.org/archives/07271297.html</link><pubDate>Wed, 27 Jul 2011 06:34:06 +0800</pubDate><guid>https://fukun.org/archives/07271297.html</guid><description>&lt;p&gt;jquery用$.each处理返回的json数据:&lt;/p&gt;
&lt;p&gt;例如，json数据如下：&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;[ 
{"Id": 10004, "PageName": "club"}, 
{"Id": 10040, "PageName": "qaz"}, 
{"Id": 10059, "PageName": "beauty"}
]
&lt;/pre&gt;
&lt;p&gt;希望用jquery对此数据进行操作，使用$.each:&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;$.each(data, function(i, item) {
 alert(item.PageName);
});
&lt;/pre&gt;
&lt;p&gt;本人亲测可行。&lt;/p&gt;</description></item><item><title>jquery bind select onchange用法</title><link>https://fukun.org/archives/07261295.html</link><pubDate>Tue, 26 Jul 2011 05:07:47 +0800</pubDate><guid>https://fukun.org/archives/07261295.html</guid><description>&lt;p&gt;在使用jquery时，bind了onchange，但是却不能生效，经查实后，发现，需要bind的是change，才会出发如select等的onchange动作。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;$('#region').bind('change',function(){
alert('t');
});
&lt;/pre&gt;</description></item><item><title>关于event兼容mozilla firefox的问题 event is not defined</title><link>https://fukun.org/archives/07251282.html</link><pubDate>Mon, 25 Jul 2011 11:32:34 +0800</pubDate><guid>https://fukun.org/archives/07251282.html</guid><description>&lt;p&gt;火狐下使用 event.srcElement 时候，被提示 event is not defined，但是在IE下确是好的。这是由于不兼容引起的，火狐下可以用event.target来替代 event.srcElement ，如果要做到两者兼容，可用如下语句:&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;obj = event.srcElement ? event.srcElement : event.target;
&lt;/pre&gt;
&lt;p&gt;这样浏览器会自己选择适合的语句来进行调用。&lt;/p&gt;</description></item><item><title>聚会——欢送陈童鞋南飞</title><link>https://fukun.org/archives/07231292.html</link><pubDate>Sat, 23 Jul 2011 15:02:32 +0800</pubDate><guid>https://fukun.org/archives/07231292.html</guid><description>&lt;p&gt;陈童鞋就要离开我们南下了，也借这么个机会，叫大家一起聚一下~&lt;/p&gt;
&lt;p&gt;最后相机没电了，只有这么一张合影。。&lt;/p&gt;
&lt;div id="attachment_1293" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/07/20100723_06_juhui.jpg"&gt;&lt;img src="//fukun.org/wp-content/uploads/2011/07/20100723_06_juhui-600x450.jpg" alt="合影" title="20100723_06_juhui" width="600" height="450" class="size-large wp-image-1293" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 合影
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>火狐下innerText兼容问题</title><link>https://fukun.org/archives/07221285.html</link><pubDate>Fri, 22 Jul 2011 11:35:02 +0800</pubDate><guid>https://fukun.org/archives/07221285.html</guid><description>&lt;p&gt;火狐下innerText不起作用，是因为火狐下没有innerText这个属性，火狐下对应的是textContent，所以可以用此语句来进行兼容：&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;if(navigator.appName.indexOf("Explorer") &amp;gt; -1)
 document.getElementById("id").innerText = "contenttext";
else
 document.getElementById("id").textContent = "contenttext";
&lt;/pre&gt;
&lt;p&gt;另外，火狐和IE均有 innerHTML 属性，所以如果可以的话，使用innerHTML属性也可以起到兼容作用。&lt;/p&gt;</description></item><item><title>迅雷今晚上市 再遭千万索赔</title><link>https://fukun.org/archives/07211273.html</link><pubDate>Thu, 21 Jul 2011 01:33:49 +0800</pubDate><guid>https://fukun.org/archives/07211273.html</guid><description>&lt;p&gt;迅雷公司的上市路一波三折。比此前媒体报道的上市日期推迟一天，迅雷将于北京时间今晚在纳斯达克挂牌上市，股票发行代码为XNET，发行价区间为14美元-16美元。&lt;/p&gt;
&lt;h2 id="中概股风波下提交ipo申请"&gt;中概股风波下提交IPO申请&lt;/h2&gt;
&lt;p&gt;早在几年前，迅雷CEO邹胜龙就曾发话迅雷不久将赴美上市。但直到今年6月9日，迅雷才向纳斯达克提交了IPO申请。迅雷计划融资2亿美元，并请来李开复等人担任独董护航。&lt;/p&gt;
&lt;p&gt;不过此时正值中国概念股泡沫破裂期。今年第二季度以来，在美上市的中国公司连续爆出会计丑闻，券商对在美上市中国公司的股票交易风险发出警告，导致不少公司股价跌破发行价。&lt;/p&gt;</description></item><item><title>火狐 getyear 数据格式</title><link>https://fukun.org/archives/07201288.html</link><pubDate>Wed, 20 Jul 2011 11:49:00 +0800</pubDate><guid>https://fukun.org/archives/07201288.html</guid><description>&lt;p&gt;火狐下使用getyear时，得到不是正常格式的 2011 数据，是一个比较小的数，加上1900就是正常的年份。这也是和IE的兼容性问题，解决办法也很多。&lt;/p&gt;
&lt;p&gt;首先是判断得到的数据，决定是否加上1900：&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;year = (year &amp;lt; 1900) ? (1900 + year) : year;
&lt;/pre&gt;
&lt;p&gt;其实更简单的是可以用getfullyear()或者getUTCFullYear()来替代即可。&lt;/p&gt;
&lt;/p&gt;</description></item><item><title>查看Linux上运行的服务</title><link>https://fukun.org/archives/07191271.html</link><pubDate>Tue, 19 Jul 2011 11:01:58 +0800</pubDate><guid>https://fukun.org/archives/07191271.html</guid><description>&lt;p&gt;若一台机器运行有很多不需要的服务，那么被攻击者入侵的可能性就会大大加大，因此作为管理员就应该经常查看系统运行有哪些服务。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;首先查看系统运行的进程&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;若需要查看系统当前运行的所有进程，就需要用如下命令：&lt;/p&gt;
&lt;p&gt;# ps auxw&lt;/p&gt;
&lt;p&gt;其中参数a表示显示系统中所有用户的的进程；u表示输出进程用户所属信息； x表示也&lt;/p&gt;
&lt;p&gt;显示没有控制台的进程；若显示行太长而被截断则可以使用f参数；&lt;/p&gt;</description></item><item><title>百度正式推出PC浏览器 打通Web App入口</title><link>https://fukun.org/archives/07181266.html</link><pubDate>Mon, 18 Jul 2011 01:45:48 +0800</pubDate><guid>https://fukun.org/archives/07181266.html</guid><description>&lt;p&gt;7月18日消息，百度PC端浏览器正式进入公测阶段，最新推出的百度浏览器打通了WEB APP的入口，将超过三万的海量应用整合到同一个平台中供用户选择。&lt;/p&gt;
&lt;p&gt;百度称，通过推出PC端浏览器是希望进一步强化“框计算”在用户桌面端的体现，突出以用户体验为原则的设计理念。&lt;/p&gt;
&lt;div id="attachment_1268" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/07/2011-07-18-baidu-liulanqi-pic.jpg"&gt;&lt;img class="size-full wp-image-1268" title="2011-07-18-baidu-liulanqi-pic" src="//fukun.org/wp-content/uploads/2011/07/2011-07-18-baidu-liulanqi-pic.jpg" alt="百度PC浏览器截图" width="550" height="329" srcset="//fukun.org/wp-content/uploads/2011/07/2011-07-18-baidu-liulanqi-pic.jpg 550w, //fukun.org/wp-content/uploads/2011/07/2011-07-18-baidu-liulanqi-pic-300x179.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 百度PC浏览器截图
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>js/jquery — null 为空或不是对象</title><link>https://fukun.org/archives/07171301.html</link><pubDate>Sun, 17 Jul 2011 06:49:20 +0800</pubDate><guid>https://fukun.org/archives/07171301.html</guid><description>&lt;p&gt;本文只针对本人遇到的情况进行说明，相信其他人也有可能会遇到类似的情况。&lt;/p&gt;
&lt;p&gt;本人用jquery的ajax做了一个省市联动，在本地测试可行，但是当部署到程序的测试环境后却产生错误，说null 为空或不是对象。&lt;/p&gt;
&lt;p&gt;引起此错误的原因应该就是如下两种之一：&lt;/p&gt;
&lt;p&gt;1、选择器的确是没有找到指定的元素，有可能是因为你的这条语句在html文档中的位置比较靠前，在该元素加载之前你的这条js开始执行，找不到元素。如果还是不希望修改js语句的位置，可以选用&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;$(function(){
//你的jquery 代码
}
&lt;/pre&gt;
&lt;p&gt;此语句表示在文档加载完后才开始加载此处的js代码。&lt;/p&gt;
&lt;p&gt;2、没有加载到jQuery的lib文件，导致选择器失效。&lt;/p&gt;
&lt;p&gt;我这里，此程序选用了一个现有的框架，虽然在web页面源码中可以看到jQuery文件被引入了，但是还是报此错误，经排查发现是框架载入文件的顺序问题，在我的此jquery运行前，jquery框架还未运行，所以会提示“null 为空或不是对象”，经修正，即可正常运行了。&lt;/p&gt;</description></item><item><title>mysql kill process解决死锁问题，停用某条正在执行的语句.</title><link>https://fukun.org/archives/07161263.html</link><pubDate>Fri, 15 Jul 2011 17:00:26 +0800</pubDate><guid>https://fukun.org/archives/07161263.html</guid><description>&lt;p&gt;在使用mysql运行某些语句时，会因数据量太大而导致死锁，没有反映。这个时候，就需要kill掉某个正在消耗资源的query即可。&lt;/p&gt;
&lt;p&gt;使用：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;show processlist;
&lt;/pre&gt;
&lt;p&gt;显示出当前正在执行的sql语句列表，找到消耗资源最大的那条语句对应的id.&lt;/p&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;kill id;
&lt;/pre&gt;
&lt;p&gt;杀掉即可。&lt;/p&gt;</description></item><item><title>mysql-select into-not in()-给C#转型来的PHP程序员的一点小提示</title><link>https://fukun.org/archives/07151259.html</link><pubDate>Thu, 14 Jul 2011 17:00:42 +0800</pubDate><guid>https://fukun.org/archives/07151259.html</guid><description>&lt;p&gt;搞C#、.NET的，大都用的mssql数据库，但是在mysql里边，有一些mssql的用法是不适用的，以下是我今天刚经历的两个例子，共大家参考。&lt;/p&gt;
&lt;p&gt;1、SELECT INTO TABLE&lt;/p&gt;
&lt;p&gt;在mssql中， 有如下用法，可以直接把查询出的数据放到一个新表中，这条语句可以很好的用来备份表。&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;select * into table1_bak from table1
&lt;/pre&gt;
&lt;p&gt;2、not in()&lt;/p&gt;
&lt;p&gt;在mssql中， not in () 的括弧内可以直接放置sql语句，也可以很方便的实现特殊查询。&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;select * from bill_log where bill_id not in(select bill_id from bill_log07)
&lt;/pre&gt;
&lt;p&gt;这条语句在mysql中就会报错。&lt;/p&gt;</description></item><item><title>推荐阅读：《我在赶集网的两个月（完整版）》</title><link>https://fukun.org/archives/07141255.html</link><pubDate>Thu, 14 Jul 2011 05:51:06 +0800</pubDate><guid>https://fukun.org/archives/07141255.html</guid><description>&lt;h1 id="引子"&gt;引子：&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;很好的一个流水帐，很好的一个实习生案例，很好的一个职场现身说法，很好的用数据说话的实战例子，很好的鲶鱼！请仔细阅读，尤其是刚刚踏入职场没几年的年轻人，看看一个大三的北邮学生是怎么震了赶集网的销售、数据挖掘、竞情分析、产品、团购、运营和电话销售。&lt;/strong&gt;****&lt;/p&gt;
&lt;p&gt;引用赶集网YJ先生对这位大三实习生的褒奖邮件中几句结论，共勉：&lt;/p&gt;
&lt;p&gt;2.以结果为导向  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;任何工作活动，都要有结果，要清晰的知道目标和目的，得有实现结果的”势利眼”。为实现目标，谁都可以随时站到全局看问题，技术人员可以站在商务角度考虑问题，产品也可以了解一定的技术思路，这些方式、技术、工具、能力，都只是手段，甚至都不是最重要的，最重要的是随时知道想要的结果是什么，知道大家共同的目标是什么。&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;不该以”苦劳”来论成绩， BUG 百出的代码，看似忙碌，实则是一种破坏；冗长的会议也不好玩，没有结果的会谈任何人都该随时中止。  &lt;/p&gt;
&lt;p&gt;3.共生而不是惰化  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一个人做不成任何事情，甚至都生存不了，人只有与组织共生。但组织大了常会有个体的依赖， 1+1&amp;lt;2 ，甚至 &amp;lt;1 ，最后整个组织都烂掉。我们不需要组织性惰化，我们需要每个人都时刻警醒：自己是否为别人提供了有价值的付出，自己是否帮助到了团队同事；自己是否变懒了，自己是否在抱怨各种所谓的不公。&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;4.挖掘自身的价值  &lt;/p&gt;
&lt;p&gt;每个人都有别人不及的价值，我们在工作中都需要千方百计的把自身这些独特的价值挖掘出来，不用拘泥于现有思路，更不用局限于已有的经验。要敢做，要尝试不同的方式，同时也要尊重自己以外的每一个团队成员的价值。每个人都这样做，才能整体而全面的超越对手。&lt;/p&gt;</description></item><item><title>11个重点城市住宅库存63.4万套 买方市场或到来</title><link>https://fukun.org/archives/07131250.html</link><pubDate>Wed, 13 Jul 2011 01:34:20 +0800</pubDate><guid>https://fukun.org/archives/07131250.html</guid><description>&lt;p&gt;7月12日，记者从研究机构获悉，上周末11大重点城市的存货总量达到63.4万套，环比上涨0.9%，存货总量继续创新高。并且，目前北京市新房住宅的库存量已经攀升至107602套，逼近11万套，也创今年高点。对此，业内人士预计，促销和降价将被越来越多的楼盘采用，而促销和降价的幅度也会越来越大，买方市场或将到来。&lt;/p&gt;
&lt;p&gt;广发证券研报统计，从可售住宅总量来看，库存继续攀升。上周11大重点城市的新增住宅供应2.1万套，为近一月来最低值。但是，存货总量却达到63.4万套，环比上涨0.9%。&lt;/p&gt;</description></item><item><title>iOS 5推出新测试版 iPhone5或采用纯触屏设计</title><link>https://fukun.org/archives/07131244.html</link><pubDate>Wed, 13 Jul 2011 01:24:30 +0800</pubDate><guid>https://fukun.org/archives/07131244.html</guid><description>&lt;p&gt;据国外媒体报道，苹果已经向应用软件开发员发布了新版本的测试版iOS 5，展示了新款手机操作系统的某些新功能和新设计。&lt;/p&gt;
&lt;div id="attachment_1245" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/07/20110713-ios5-iphone5-full-touch.jpg"&gt;&lt;img class="size-full wp-image-1245" title="20110713-ios5-iphone5-full-touch" src="//fukun.org/wp-content/uploads/2011/07/20110713-ios5-iphone5-full-touch.jpg" alt="iOS 5测试版最新版本" width="550" height="428" srcset="//fukun.org/wp-content/uploads/2011/07/20110713-ios5-iphone5-full-touch.jpg 550w, //fukun.org/wp-content/uploads/2011/07/20110713-ios5-iphone5-full-touch-300x233.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 iOS 5测试版最新版本
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>OpenID和OAuth (OpenID versus OAuth from the user’s perspective)认证的相同与区别</title><link>https://fukun.org/archives/07121237.html</link><pubDate>Tue, 12 Jul 2011 10:52:41 +0800</pubDate><guid>https://fukun.org/archives/07121237.html</guid><description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt;OpenID&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户希望访问其在example.com的账户&lt;/li&gt;
&lt;li&gt;example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID&lt;/li&gt;
&lt;li&gt;用户给出了他的OpenID，比如说”http://user.myopenid.com”&lt;/li&gt;
&lt;li&gt;example.com 跳转到了用户的OpenID提供商“mypopenid.com”&lt;/li&gt;
&lt;li&gt;用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登录&lt;/li&gt;
&lt;li&gt;“myopenid.com” (OpenID provider) 问用户是否要登录到example.com&lt;/li&gt;
&lt;li&gt;用户同意后，”myopenid.com” (OpenID provider) 跳转回example.com&lt;/li&gt;
&lt;li&gt;example.com 允许用户访问其帐号&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>PHP 数组排序 sort、asort 及 ksort 系列函数</title><link>https://fukun.org/archives/07111231.html</link><pubDate>Mon, 11 Jul 2011 10:40:05 +0800</pubDate><guid>https://fukun.org/archives/07111231.html</guid><description>&lt;p&gt;•sort() 函数用于对数组单元从低到高进行排序。&lt;/p&gt;
&lt;p&gt;•rsort() 函数用于对数组单元从高到低进行排序。&lt;/p&gt;
&lt;p&gt;•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。&lt;/p&gt;
&lt;p&gt;•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。&lt;/p&gt;
&lt;p&gt;•ksort() 函数用于对数组单元按照键名从低到高进行排序。&lt;/p&gt;
&lt;p&gt;•krsort() 函数用于对数组单元按照键名从高到低进行排序。&lt;/p&gt;</description></item><item><title>实名火车票泄露个人信息 二维码软件可读取</title><link>https://fukun.org/archives/07101248.html</link><pubDate>Sun, 10 Jul 2011 01:27:44 +0800</pubDate><guid>https://fukun.org/archives/07101248.html</guid><description>&lt;p&gt;自今年6月1日起，G、D字头的高铁及动车组购票实施实名制，旅客名字及身份证号码都要打印在车票上。不少人担心，此种做法可能导致个人信息泄露。近日，有网友爆料，通过手机或电脑上安装的读取软件，仍能从实名制火车票上的二维码中查到购票者的身份证号码。通过实际操作后，证实了该说法是可行的。&lt;/p&gt;
&lt;p&gt;从7月以来，细心的旅客会发现，实名制火车票上的身份证号码部分已被遮住。近日，网友huskyland发微博称：“经常坐动车的同学注意了，实名制下，动车票右下角都有一个二维码，里面包含个人的身份证信息，网上很多免费下载的软件，甚至手机软件都能轻易读取。喜欢在网上晒动车火车票照片的网友也注意了，不能露出二维码。”不少网友看到后纷纷转发，并称遮住身份证号码的措施不“治根”，以后购买的实名制火车票都要妥善保管。&lt;/p&gt;</description></item><item><title>租房，难；房租，贵。啊……</title><link>https://fukun.org/archives/07091240.html</link><pubDate>Sat, 09 Jul 2011 15:00:01 +0800</pubDate><guid>https://fukun.org/archives/07091240.html</guid><description>&lt;p&gt;今天在外边找了一天的房子，都他妈的好贵啊。。&lt;/p&gt;
&lt;p&gt;转一天也没找到合适的，晚上10点多才到家。。。&lt;/p&gt;
&lt;p&gt;我自己貌似还中暑了。FUCK….&lt;/p&gt;</description></item><item><title>《财富》世界500强发布：61家内地企业上榜 上榜500强企业名单</title><link>https://fukun.org/archives/07081227.html</link><pubDate>Fri, 08 Jul 2011 14:20:34 +0800</pubDate><guid>https://fukun.org/archives/07081227.html</guid><description>&lt;p&gt;今年，中国大陆(不包括台湾)共有61家公司进入《财富》世界500强排行榜，比上一年增加了15家公司，这是中国上榜公司数量连续第8年上升，而在2003年，中国大陆只有11家公司上榜。美国的上榜公司仍然是最多的，达到133家；其次是日本，68家。不过，如果计入台湾地区的上榜企业，中国的上榜公司数量将达到69家，已经超过日本，仅次于美国。与中国上榜公司数量不断增加相对照的是，美国上榜公司数量2002年达到创纪录的197家，在随后的9年，每年都在减少。&lt;/p&gt;
&lt;p&gt;　　中国去年上榜的所有公司今年仍然悉数上榜，无一下榜。新上榜的15家公司中，联想集团(最新排名：第449位)和中国远洋运输(集团)总公司(最新排名：第398位)都曾经上榜，今年是再度上榜，其他13家公司都是首次上榜。&lt;/p&gt;</description></item><item><title>Linux Jobs等前后台运行命令详解,停止后台程序</title><link>https://fukun.org/archives/07071225.html</link><pubDate>Thu, 07 Jul 2011 11:23:47 +0800</pubDate><guid>https://fukun.org/archives/07071225.html</guid><description>&lt;p&gt;Linux Jobs等前后台运行命令详解,停止后台程序:&lt;/p&gt;
&lt;p&gt;Shell支持作用控制，有以下命令：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;command&amp;amp; 让进程在后台运行 / nohup command &amp;amp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;jobs 查看后台运行的进程&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;fg %n 让后台运行的进程n到前台来,再Ctrl+c即可终止该程序.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;bg %n 让进程n到后台去；&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PS:”n”为jobs -l查看到的进程编号.&lt;/p&gt;</description></item><item><title>微软必应29岁产品项目经理跳槽至谷歌</title><link>https://fukun.org/archives/07061220.html</link><pubDate>Wed, 06 Jul 2011 14:38:17 +0800</pubDate><guid>https://fukun.org/archives/07061220.html</guid><description>&lt;p&gt;据国外媒体报道，据国外媒体报道，微软必应产品项目经理萨纳斯-阿哈里(Sanaz Ahari) 周二证实，她已跳槽至谷歌，将负责谷歌西雅图和西北太平洋地区显示广告产品业务。现年29岁的阿哈里是微软历史上最年轻的重要产品部门负责人，已在微软供职7年半之久，曾是微软搜索部门副总裁布莱恩-麦克唐纳(Brian MacDonald)核心领导团队成员，离职前担任必应主要集团项目(Principal Group Program)经理。&lt;/p&gt;
&lt;p&gt;阿哈里是负责搜索质量和相关产品的资深人士，也是必应产品开发和发布期间微软高级产品团队的成员。&lt;/p&gt;</description></item><item><title>mysql批量删除表,相同前缀的表</title><link>https://fukun.org/archives/07051222.html</link><pubDate>Tue, 05 Jul 2011 15:01:39 +0800</pubDate><guid>https://fukun.org/archives/07051222.html</guid><description>&lt;p&gt;mysql中没有现有的工具可以直接实现，所以原理就是使用现有的功能实现drop table 的语句的自动拼写，从而达到简化目的。&lt;/p&gt;
&lt;p&gt;下边举例说明，如果想删除”wp_”开头的表：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;Select CONCAT( 'drop table ', table_name, ';' ) 
FROM information_schema.tables 
Where table_name LIKE 'wp_%';
&lt;/pre&gt;
&lt;p&gt;这样就会出现drop table wp_xxxx 的所有语句，复制下来，简单修改一下，直接粘贴到命令行中运行就可以啦~~&lt;/p&gt;</description></item><item><title>词霸股权曝光：团队占20% 与金山签对赌协议</title><link>https://fukun.org/archives/07041214.html</link><pubDate>Mon, 04 Jul 2011 01:11:55 +0800</pubDate><guid>https://fukun.org/archives/07041214.html</guid><description>&lt;p&gt;7月4日消息，继拆分为独立子公司后，金山词霸在资本方面在继续运作。据知情人士透露，目前团队占金山词霸公司股权20%，并与金山软件CEO求伯君签订对赌协议，一旦团队达标可获得另外10%股份。&lt;/p&gt;
&lt;p&gt;据了解，未来词霸将成立独立财务、人事、市场等业务部门，并可能酝酿资本方面的运作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;词霸估值过千万 团队占股20%&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;据了解，今年以来金山词霸动作不断，年初高层岗位进行调整，原总裁贾琳转任CEO，原技术总监王海明担任CTO。具体业务上金山词霸2011正式版推出，从单纯的翻译软件调整成英文学习社区，并更换了沿用十余年的老图标。&lt;/p&gt;
&lt;p&gt;此外，金山软件还宣布词霸项目分拆为独立子公司。知情人士向腾讯科技透露，金山软件已聘请了第三方评估公司，对金山词霸从用户量、品牌、发展前景等方面进行估值，估值价格超过上千万美元。其中，团队持有10%股权，金山软件对词霸团队再转送10%，即目前词霸团队拥有20%股权。&lt;/p&gt;</description></item><item><title>解决MYSQL数据从高版本导入低版本的问题–mysqldump</title><link>https://fukun.org/archives/07031216.html</link><pubDate>Sun, 03 Jul 2011 12:02:23 +0800</pubDate><guid>https://fukun.org/archives/07031216.html</guid><description>&lt;p&gt;首先，在目标机器上，使用status查看mysql的版本。&lt;/p&gt;
&lt;p&gt;然后，在导出数据的机器上，使用mysqldump导出数据时，加上如下参数&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;–compatible=mysql323&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;mysql323是版本的名字。&lt;/p&gt;
&lt;p&gt;这样，导出的数据就可以在低版本的mysql上使用mysqldump导入了。&lt;/p&gt;</description></item><item><title>input textarea宽高自适应</title><link>https://fukun.org/archives/07021206.html</link><pubDate>Fri, 01 Jul 2011 16:47:16 +0800</pubDate><guid>https://fukun.org/archives/07021206.html</guid><description>&lt;p&gt;Input高度固定，自动增宽&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;input type="text" style="width:60;overflow-x:visible;"&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Textarea宽度固定，自动增高&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;textarea type="text" style="width:260;overflow-y:visible;"&amp;gt;&amp;lt;/textarea&amp;gt;
&lt;/pre&gt;</description></item><item><title>PHP 数组 判断是否存在某个键值 array_key_exists()</title><link>https://fukun.org/archives/07011200.html</link><pubDate>Fri, 01 Jul 2011 10:02:54 +0800</pubDate><guid>https://fukun.org/archives/07011200.html</guid><description>&lt;p&gt;PHP 检测数组是否存在某个键值 判断数组索引是否存在 array_key_exists();&lt;/p&gt;
&lt;p&gt;bool array_key_exists ( mixed key, array search )&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;&amp;lt;?php
/*

array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。

*/

$search_array = array("first" =&amp;gt; 1, "second" =&amp;gt; 4);
if (array_key_exists("first", $search_array)) {
 echo "The 'first' element is in the array";
}
?&amp;gt;
&lt;/pre&gt;</description></item><item><title>imagettftext() [function.imagettftext]: Could not find/open font in 字体乱码不正常</title><link>https://fukun.org/archives/06301198.html</link><pubDate>Thu, 30 Jun 2011 15:45:52 +0800</pubDate><guid>https://fukun.org/archives/06301198.html</guid><description>&lt;p&gt;在使用imagettftext()函数生成包含汉字的图片时，在本地测试正常，上传到空间后运行却报如下错误&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;imagettftext() [function.imagettftext]: Could not find/open font in……
&lt;/pre&gt;
&lt;p&gt;查看官方手册：&lt;/p&gt;
&lt;p&gt;When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the ‘path separator’ for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.&lt;/p&gt;
&lt;p&gt;说是因为如果GD库的版本过低的话，字体文件的路径中不能包含有空格。&lt;/p&gt;
&lt;p&gt;但是我想我空间的GD库不能那么低啊，而且字体文件路径中也没有空格，然后突然想到，linux/unix主机下文件名是区分大小写的，空间内字体文件的名称是SIMFANG.TTF,而我在使用它的时候用的是小写，所以会找不到字体文件，报此错误。&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;还曾经遇到一个错误是字体乱码的问题，更换了一个字体就好啦。。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Mysql 命令行导入 乱码 解决方法</title><link>https://fukun.org/archives/06291203.html</link><pubDate>Wed, 29 Jun 2011 10:04:36 +0800</pubDate><guid>https://fukun.org/archives/06291203.html</guid><description>&lt;p&gt;mysql命令行从文件导入时发生乱码，是因为编码问题，即使改变sql文件的编码，重新导入时，仍旧是乱码，针对此问题，我们在导入时，在命令行中指定编码即可。&lt;/p&gt;
&lt;p&gt;如下:&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;mysql -uroot -p123 management &amp;lt;D:dump.sql -f --default-character-set=utf8
&lt;/pre&gt;
&lt;/p&gt;</description></item><item><title>Linux中如何让进程(或正在运行的程序)到后台运行?</title><link>https://fukun.org/archives/06281192.html</link><pubDate>Tue, 28 Jun 2011 01:20:50 +0800</pubDate><guid>https://fukun.org/archives/06281192.html</guid><description>&lt;p&gt;在Linux中，如果要让进程在后台运行，一般情况下，我们在命令后面加上&amp;amp;即可，实际上，这样是将命令放入到一个作业队列中了：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;$ ./test.sh &amp;
[1] 17208

$ jobs -l
[1]+ 17208 Running ./test.sh &amp;
&lt;/pre&gt;
&lt;p&gt;对于已经在前台执行的命令，也可以重新放到后台执行，首先按ctrl+z暂停已经运行的进程，然后使用bg命令将停止的作业放到后台运行：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;$ ./test.sh
[1]+ Stopped ./test.sh

$ bg %1
[1]+ ./test.sh &amp;

$ jobs -l
[1]+ 22794 Running ./test.sh &amp;
&lt;/pre&gt;</description></item><item><title>vim 如何打开文件并同时跳到某行?</title><link>https://fukun.org/archives/06271190.html</link><pubDate>Mon, 27 Jun 2011 01:18:35 +0800</pubDate><guid>https://fukun.org/archives/06271190.html</guid><description>&lt;p&gt;命令:&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;vim FileName +LineNumber
&lt;/pre&gt;
&lt;p&gt;如:&lt;/p&gt;
&lt;p&gt;vim index.php +15 将打开index.php文件并直接跳转到第15行&lt;/p&gt;</description></item><item><title>美黑客承认曾窃取12万iPad用户数据</title><link>https://fukun.org/archives/06261181.html</link><pubDate>Sun, 26 Jun 2011 08:32:54 +0800</pubDate><guid>https://fukun.org/archives/06261181.html</guid><description>&lt;p&gt;据国外媒体报道，美国电脑黑客丹尼尔·斯皮特尔勒(Daniel Spitler)周四承认，他曾在去年编写代码，以便用于对移动运营商AT&amp;amp;T的服务器进行攻击，并获取约12万苹果iPad用户的邮件地址和个人信息。&lt;/p&gt;
&lt;p&gt;丹尼尔现年28岁，来自于旧金山，他在周四承认盗取了身份信息，并密谋获取未经授权访问电脑的权力。每项指控，丹尼尔都面临最高5年的法庭判罚。法庭将于9月28日进行宣判。&lt;/p&gt;
&lt;p&gt;丹尼尔与另一名黑客安德鲁·奥尔尼海默(Andrew Auernheimer)在今年1月被警方逮捕，警方指控丹尼尔与奥尔尼海默开发程序，并在2010年6月针对AT&amp;amp;T服务器进行攻击。新泽西纽瓦克联邦检查官指责丹尼尔与奥尔尼海默利用了AT&amp;amp;T的网络漏洞。该漏洞可能导致iPad用户的电子邮件地址被泄露。&lt;/p&gt;
&lt;p&gt;丹尼尔与奥尔尼海默获取的电子邮件地址包括了企业老总、美国政府高官以及好莱坞明星等人的邮件地址。&lt;/p&gt;</description></item><item><title>Facebook聘知名黑客开发iPad应用</title><link>https://fukun.org/archives/06251185.html</link><pubDate>Sat, 25 Jun 2011 04:50:10 +0800</pubDate><guid>https://fukun.org/archives/06251185.html</guid><description>&lt;p&gt;据国外媒体报道，消息人士透露，曾因破解PS3而与索尼对薄公堂的著名黑客乔治·霍茨（George Hotz）已经接受了Facebook抛出的橄榄枝，具体职位尚不清楚，但有可能任职于Facebook传闻已久的iPad应用开发团队。&lt;/p&gt;
&lt;p&gt;乔治·霍茨因破解索尼PS3而声名大振。今年年初，索尼对乔治·霍茨和一些黑客团体提起了诉讼，指控他们违法实施了各种侵犯版权的行为，这些破解内容使得任何人可以在PS3运行任何软件，包括盗版程序。今年4月份，乔治·霍茨与索尼达成和解，他被终身禁止涉足索尼产品的技术保护措施，禁止参与或协助类似活动；禁止以任何方式发放或分享不正当或未授权的索尼产品信息。&lt;/p&gt;</description></item><item><title>谷歌深陷反垄断调查 被指操纵搜索结果恐拆分</title><link>https://fukun.org/archives/06241188.html</link><pubDate>Fri, 24 Jun 2011 04:53:23 +0800</pubDate><guid>https://fukun.org/archives/06241188.html</guid><description>&lt;p&gt;互联网搜索引擎巨头美国谷歌公司承认美国联邦贸易委员会已经对其核心业务展开正式调查，以证实该公司是否利用自身搜索优势破坏行业竞争。业内分析人士表示，应对这种调查所耗费的时间无法用人脑来计算。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;调查将影响管理层&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;据悉，美国加利福尼亚州、纽约州和俄亥俄州已经开始着手调查谷歌搜索业务是否对互联网竞争构成潜在威胁。其实早在去年，得克萨斯州司法部长办公室已经率先在美国发起了这项调查。&lt;/p&gt;</description></item><item><title>PHP开发人员常犯的几个MysqL错误</title><link>https://fukun.org/archives/06231195.html</link><pubDate>Thu, 23 Jun 2011 03:00:20 +0800</pubDate><guid>https://fukun.org/archives/06231195.html</guid><description>&lt;p&gt;对于大多数web应用来说，数据库都是一个十分基础性的部分。如果你在使用PHP，那么你很可能也在使用MySQL—LAMP系列中举足轻重的一员。&lt;/p&gt;
&lt;p&gt;对于很多新手们来说，使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是，构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的10个MySQL相关的错误（有些同样也反映在其他语言/数据库的使用上）。&lt;/p&gt;
&lt;p&gt;1、使用MyISAM而不是InnoDB&lt;/p&gt;
&lt;p&gt;MySQL有很多数据库引擎，但是你最可能碰到的就是MyISAM和InnoDB。&lt;/p&gt;
&lt;p&gt;MySQL 默认使用的是MyISAM。但是，很多情况下这都是一个很糟糕的选择，除非你在创建一个非常简单抑或实验性的数据库。外键约束或者事务处理对于数据完整性 是非常重要的，但MyISAM都不支持这些。另外，当有一条记录在插入或者更新时，整个数据表都被锁定了，当使用量增加的时候这会产生非常差的运行效率。&lt;/p&gt;
&lt;p&gt;结论很简单：使用InnoDB。&lt;/p&gt;</description></item><item><title>mysqldump 同时导出/备份多个表</title><link>https://fukun.org/archives/06221178.html</link><pubDate>Wed, 22 Jun 2011 04:51:36 +0800</pubDate><guid>https://fukun.org/archives/06221178.html</guid><description>&lt;p&gt;mysqldump导出/备份同一个库的多个表&lt;/p&gt;
&lt;p&gt;备份指定数据库的一个或者多个表，用法是：&lt;/p&gt;
&lt;p&gt;mysqldump [options] DATABASE TABLE1 [TABLE2 TABLE 3…] &amp;gt;file.sql&lt;/p&gt;
&lt;p&gt;例如备份wordpress数据库的wp_posts表和wp_options表到wordpress_1.sql：&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;mysqldump -u root -p wordpress wp_posts wp_options &amp;gt; wordpress_1.sql
&lt;/pre&gt;</description></item><item><title>awk 用法：awk ‘ pattern {action} ‘ file</title><link>https://fukun.org/archives/06211176.html</link><pubDate>Tue, 21 Jun 2011 08:23:09 +0800</pubDate><guid>https://fukun.org/archives/06211176.html</guid><description>&lt;p&gt;变量名                含义&lt;/p&gt;
&lt;p&gt;ARGC                命令行变元个数&lt;/p&gt;
&lt;p&gt;ARGV                命令行变元数组&lt;/p&gt;
&lt;p&gt;FILENAME        当前输入文件名&lt;/p&gt;
&lt;p&gt;FNR                当前文件中的记录号&lt;/p&gt;
&lt;p&gt;FS                输入域分隔符，默认为一个空格&lt;/p&gt;
&lt;p&gt;RS                输入记录分隔符&lt;/p&gt;
&lt;p&gt;NF                当前记录里域个数&lt;/p&gt;
&lt;p&gt;NR                到目前为止记录数&lt;/p&gt;
&lt;p&gt;OFS                输出域分隔符&lt;/p&gt;
&lt;p&gt;ORS                输出记录分隔符&lt;/p&gt;</description></item><item><title>如何用php实现发送带附件的邮件</title><link>https://fukun.org/archives/06201173.html</link><pubDate>Mon, 20 Jun 2011 10:31:32 +0800</pubDate><guid>https://fukun.org/archives/06201173.html</guid><description>&lt;p&gt;首先要清楚，要用php实现发送带附件的邮件没有什么简单的办法。你要很好的理解PHP或其它的服务器端的脚本语言,如果你理解了，也就算是很简单了。当然你还要一个真正支持PHP的网站的账号。这个是最基础的前提，然后在你读完了本文章后就可以用PHP发送带附件的电子邮件了。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;附件是如何工作的&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你曾经在PHP的手册中搜索过“附件”函数，那么结果可能是什么都没有（至少在我写本文的时间还没有）。后来你就要花很多时间来了解这方面的知识。&lt;/p&gt;
&lt;p&gt;你也许会想当你给某个人发送一封带附件的电子邮件时，附件是和邮件一起放到收件人的信箱里的（比如，如果你给他/她发了一个PNG的图片文件，他/她的信箱里会包含一个txt文件（电子邮件）和一个.png文件（附件）。但这不是它的工作原理。当你加入一个附件时，你的邮件程序把附件转换成纯文本文件，并在你写的内容（实际的电子邮件）后面插入这个文本块。这个，当你把所有的东西发出来后，收件人的信箱里只有一个纯文本文件——一个同时包含附件和实际电子邮件内容的文件。&lt;/p&gt;</description></item><item><title>php 四舍五入 数学函数</title><link>https://fukun.org/archives/06191171.html</link><pubDate>Sun, 19 Jun 2011 10:22:49 +0800</pubDate><guid>https://fukun.org/archives/06191171.html</guid><description>&lt;p&gt;round — 对浮点数进行四舍五入&lt;/p&gt;
&lt;p&gt;说明&lt;/p&gt;
&lt;p&gt;float round ( float val [, int precision])&lt;/p&gt;
&lt;p&gt;返回将 val 根据指定精度 precision（十进制小数点后数字的数目）进行四舍五入的结果。precision 也可以是负数或零（默认值）。&lt;/p&gt;</description></item><item><title>谷歌称将不给奥巴马竞选团队任何广告优惠</title><link>https://fukun.org/archives/06181169.html</link><pubDate>Sat, 18 Jun 2011 03:58:09 +0800</pubDate><guid>https://fukun.org/archives/06181169.html</guid><description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt;据ITProPortal网站报道，谷歌公司已经否认了给予美国总统奥巴马连任竞选团队任何特别的广告计划和优惠待遇。根据报道，一位美国共和党参议院委员会（NRSC）的成员表示谷歌在上个月为共和党创建了一个新的广告活动，该成员表示他曾经在奥巴马连任竞选的网站RealClearPolitics上看到过相关广告。&lt;/p&gt;
&lt;p&gt;今天，谷歌的发言人Jake Parrillo否认了这个消息，他表示“我们从没有过为任何政治候选人创建或赠送任何特殊的广告活动。”&lt;/p&gt;
&lt;p&gt;很显然，这次出现的只是谷歌的新广告项目──CPL项目的一次小实验，并非为奥巴马连任竞选的造势宣传广告。&lt;/p&gt;</description></item><item><title>perl DBD::mysql perl module hasn’t been fully installed–如何安装DBD::mysql模块</title><link>https://fukun.org/archives/06171166.html</link><pubDate>Fri, 17 Jun 2011 01:28:28 +0800</pubDate><guid>https://fukun.org/archives/06171166.html</guid><description>&lt;p&gt;在windows下的Activeperl中使用DBI模块连接mysql数据库时，被报错，提示DBD::mysql perl module hasn’t been fully installed&lt;/p&gt;
&lt;p&gt;需要进行安装。以下是错误信息。&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;install_driver(mysql) failed: Can't locate loadable object for module
+DBD::mysql in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at
+ (eval 4) line 3
Compilation failed in require at (eval 4) line 3.
Perhaps a module that DBD::mysql requires hasn't been fully installed
&lt;/pre&gt;</description></item><item><title>马云-阿里巴巴将淘宝分拆为3家公司-附马云内部邮件</title><link>https://fukun.org/archives/06161159.html</link><pubDate>Thu, 16 Jun 2011 12:25:02 +0800</pubDate><guid>https://fukun.org/archives/06161159.html</guid><description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt;阿里巴巴集团将于6月16日起把淘宝分拆为三家公司：一淘网etao.com，淘宝网taobao.com，和淘宝商城tmall.com。 &lt;!--/keyword--&gt;&lt;/p&gt;
&lt;p&gt;马云表示，将把大淘宝战略提升为大阿里战略，和电商参与者分享消费者群体、商户、制造产业链等，整合信息流，物流，支付，无线及云计算服务等，为中国电商的发展提供更好更全面的基础服务。&lt;/p&gt;
&lt;p&gt;即日起，陆兆禧将专职担任上市公司（阿里巴巴B2B业务）首席执行官，支持陆兆禧的团队包括：首席财务官武卫、ICBU总经理彭翼捷，CBU总经理叶朋，人力资源副总裁邓康明、技术副总裁李昂 以及供应商服务部付总裁吴敏芝等。&lt;/p&gt;</description></item><item><title>中国联通调整战术：3G政策补贴转向Android,Android要火…..</title><link>https://fukun.org/archives/06151164.html</link><pubDate>Wed, 15 Jun 2011 15:59:00 +0800</pubDate><guid>https://fukun.org/archives/06151164.html</guid><description>&lt;p&gt;　　或许到了要扭转尴尬局面的时候了。&lt;/p&gt;
&lt;p&gt;　　6月15日，一位资深手机国包商向记者透露说，从5月中旬开始，中国联通&lt;!--keyword--&gt;(微博)&lt;/p&gt;
&lt;!--/keyword--&gt;针对三星、摩托罗拉、索爱等多款Android手机与渠道商展开包括合约放号在内的三方深度合作。Android要火了&amp;#8230;&amp;#8230;..
&lt;p&gt;　　毫无疑问，中国联通(600050.SH)是始于2008年的那场以3G和重组为名的电信业“均贫富”运动的最大受益者，也是最快乐、最痛苦、最纠结的复合体。&lt;/p&gt;
&lt;p&gt;　　过去一年中，借力iPhone成功完成3G形象“脱贫”的中国联通，在收获丰厚3G用户的同时，也为此付出不小代价：今年一季度联通业绩仍然没能止住下滑之势，仅实现净利润0.48亿元，比上年同期大幅下降86.93%，而对其业绩构成最大拖累的仍然是iPhone的巨额补贴(一季度3G终端销售亏损19亿元，同比亏损增加18亿元)。&lt;/p&gt;
&lt;p&gt;　　这是2008年中国3G元年以来，联通第四个以“增量不增收”为开局的年头。&lt;/p&gt;
&lt;p&gt;　　上述手机渠道商人士认为，联通正在经历“战术上的调整”，即过去联通把70%的精力用于iPhone，这在未来是一件并不经济的事情，成熟的Android手机更便宜，联通将会用更经济的产品、更丰富的产品线来降低补贴销售的比重。&lt;/p&gt;</description></item><item><title>Mysql只导出表结构,不要数据 – Mysql导出</title><link>https://fukun.org/archives/06141153.html</link><pubDate>Tue, 14 Jun 2011 10:45:57 +0800</pubDate><guid>https://fukun.org/archives/06141153.html</guid><description>&lt;p&gt;现在想把服务器上的mysql的表结构复制到本地，不需要数据。而且没有phpmyadmin等可视化工具，只能通过语句导出结构。&lt;/p&gt;
&lt;p&gt;那么在mysql命令行内，使用以下语句即可：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;SHOW CREATE DATABASE db_name //获取数据库结构 db_name是数据库名字
SHOW CREATE TABLE tbl_name //获取表的结构 tbl_name是表的名字

&lt;/pre&gt;
&lt;p&gt;即可获取到创建数据库或者表结构的语句，在本地执行即可。&lt;/p&gt;</description></item><item><title>mysql INTO OUTFIFLE时报错, can’t create to file(Errode : 130)</title><link>https://fukun.org/archives/06131150.html</link><pubDate>Mon, 13 Jun 2011 15:59:17 +0800</pubDate><guid>https://fukun.org/archives/06131150.html</guid><description>&lt;p&gt;在使用mysql 进行INTO OUTFILE导出文件时，被提示，文件不能创建，报错Errcode 130，原因就是 &lt;span style="color: #ff0000;"&gt;mysql是以mysql用户运行的，所以导出的文件只能在/home/mysql下和/tmp下。所以在导出OUTFILE的时候，路径选择到/tmp就可以啦。&lt;span style="color: #000000;"&gt;去试试吧。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;select * INTO OUTFILE '/tmp/20110613-subLog-today.log' FIELDS TERMINATED BY ',' from TODAY_LOG
&lt;/pre&gt;</description></item><item><title>Google首页电吉他google-guitar源代码下载</title><link>https://fukun.org/archives/06121147.html</link><pubDate>Sun, 12 Jun 2011 15:49:53 +0800</pubDate><guid>https://fukun.org/archives/06121147.html</guid><description>&lt;p&gt;谷歌为了纪念电吉他之父莱斯·保罗(Les Paul)诞辰96周年，在6月9日特地推出了“电吉他Doodle”。其有趣的造型，能弹奏音乐的特性，吸引了许多网友的围观。&lt;/p&gt;
&lt;p&gt;谷歌“涂鸦”，一般是指谷歌的一次性标志logo设计。6月9日和6月10日，“涂鸦”是以一个六弦的吉他为特征的，这个logo可以让访问的人通过用鼠标来弹奏琴弦，并纪录30秒的歌曲。 &lt;/p&gt;
&lt;h2 id="展示页面"&gt;展示页面：&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://digdeeply.org/dd_share/google-guitar/google-guitar.htm" target="_blank"&gt;&lt;a href="http://digdeeply.org/dd_share/google-guitar/google-guitar.htm"&gt;http://digdeeply.org/dd_share/google-guitar/google-guitar.htm&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Google 电吉他 谱子：&lt;/p&gt;
&lt;p&gt;网友们提供了好多谱子呢，这里挑几首简单的，先按下键盘图标，然后用键盘弹，记得关闭输入法。&lt;/p&gt;
&lt;p&gt;另外，由于本地的JS和FLASH的安全设置，下载后的文件在本地打开可能会没有声音。只要传到服务器上就OK啦。或者将以下代码嵌入你的BLOG，也可以使用啦。&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;iframe src="http://digdeeply.org/dd_share/google-guitar/google-guitar.htm" width="100%" height="100%" scrolling="0" border="0" frameborder="no"/&amp;gt;
&lt;/pre&gt;
&lt;p&gt;两只老虎 （我的最爱^_*）&lt;/p&gt;
&lt;p&gt;TYUT TYUT UIO UIO OPOIUT OPOIUT UWT UWT&lt;/p&gt;
&lt;p&gt;沧海一声笑&lt;/p&gt;
&lt;p&gt;POUYT UYTEW WEWETYUOP PPOUYTY&lt;/p&gt;
&lt;p&gt;隐形的翅膀&lt;/p&gt;
&lt;p&gt;358787 6568321 11186532122 358787 6568321 1118653211&lt;/p&gt;</description></item><item><title>iOS5五大隐藏功能 支持1080P高清播放</title><link>https://fukun.org/archives/06121144.html</link><pubDate>Sun, 12 Jun 2011 14:33:53 +0800</pubDate><guid>https://fukun.org/archives/06121144.html</guid><description>&lt;p&gt;近日，苹果WWDC2011世界合作者大会是人们议论的焦点。我们从大会中获知下一代iOS 5.0移动系统具备超过200项的新功能。下面是科技博客Thegadgets给大家列举的一些隐藏功能，仅供参考：&lt;/p&gt;
&lt;div id="attachment_1145" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/06/20110612-ios5-function.jpg"&gt;&lt;img class="size-full wp-image-1145" title="20110612-ios5-function" src="//fukun.org/wp-content/uploads/2011/06/20110612-ios5-function.jpg" alt="iOS5五大隐藏功能" width="550" height="366" srcset="//fukun.org/wp-content/uploads/2011/06/20110612-ios5-function.jpg 550w, //fukun.org/wp-content/uploads/2011/06/20110612-ios5-function-300x200.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 iOS5五大隐藏功能
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>里昂证券：新浪管理层将清空所有MBO股票</title><link>https://fukun.org/archives/06111140.html</link><pubDate>Sat, 11 Jun 2011 15:43:23 +0800</pubDate><guid>https://fukun.org/archives/06111140.html</guid><description>&lt;p&gt;北京时间6月10号消息，据里昂证券发布的新浪售股报告显示，新浪MBO壳公司New-Wave Investment Holding（新浪投资控股）将出售其所持新浪股票。&lt;/p&gt;
&lt;p&gt;除了6月3号与高盛签订的远期出售合约（forward sale transaction）外，新浪管理层控制的New-Wave 公司此前还曾与美国银行签订了其它两份远期合约，年内还将签下另一份180万股远期合约。i美股致电新浪相关人士询问合约一事，对方表示暂不知情。&lt;/p&gt;
&lt;p&gt;这四份远期出售合约，一共将售出560万股，这也是2009年新浪MBO时，壳公司New-Wave购入的全部股票数量。这意味着合约期满后，管理层将清空其通过New-Wave间接持有的新浪股票。&lt;/p&gt;
&lt;div id="attachment_1141" style="width: 500px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/06/20110611-sina-gupiao.jpg"&gt;&lt;img class="size-full wp-image-1141" title="20110611-sina-gupiao" src="//fukun.org/wp-content/uploads/2011/06/20110611-sina-gupiao.jpg" alt="新浪管理层的4份远期合约" width="490" height="127" srcset="//fukun.org/wp-content/uploads/2011/06/20110611-sina-gupiao.jpg 490w, //fukun.org/wp-content/uploads/2011/06/20110611-sina-gupiao-300x78.jpg 300w" sizes="(max-width: 490px) 100vw, 490px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 新浪管理层的4份远期合约
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>perl范围声明our,my,local</title><link>https://fukun.org/archives/06101124.html</link><pubDate>Fri, 10 Jun 2011 00:57:08 +0800</pubDate><guid>https://fukun.org/archives/06101124.html</guid><description>&lt;h2 id="perl中的三个范围声明-ourmylocal"&gt;perl中的三个范围声明 our,my,local&lt;/h2&gt;
&lt;div&gt;
 &lt;span style="font-size: x-small;"&gt;一、our,&amp;#8221;把名字限于某个范围“，其实就是明确声明一个&amp;#8221;全局变量&amp;#8221;，虽然是在某个模块或者函数里面定义的，外面的也可以访问，如果已经声明过了，再次用&amp;#8221;our&amp;#8221;,表示此处用的是全局的那个，不是同名的私有或者局部变量&lt;/span&gt;
&lt;/div&gt;
&lt;pre class="brush: perl; title: Example; notranslate" title="Example"&gt;our $PROGRAM_NAME = "summer";
{

my $PROGRAM_NAME = "somethingelse";
our $PROGRAM_NAME = "server"; #这里的our和外面的相同，和前句不同。
# 这里调用的代码看到的是"server"
}
# 这里执行的代码看到的仍然是"server".
&lt;/pre&gt;</description></item><item><title>PERL 语言中的q,qw,qr,qx,qq……符号用法总结</title><link>https://fukun.org/archives/06091127.html</link><pubDate>Thu, 09 Jun 2011 05:06:38 +0800</pubDate><guid>https://fukun.org/archives/06091127.html</guid><description>&lt;p&gt;在perl语言中，有两个特殊而常用的符号qq qw,分别解释如下：&lt;/p&gt;
&lt;p&gt;qq{foobar}的意思为意思为双引号字符串，可内插变量&lt;/p&gt;
&lt;p&gt;相当于 “foobar”&lt;/p&gt;
&lt;p&gt;qw{foo bar}的意思为用空格分解字符串，得到列表，相当于如下语句&lt;/p&gt;
&lt;p&gt;split(‘ ‘,’foo bar’) 得到的结果是’foo’,’bar’&lt;/p&gt;
&lt;p&gt;字符串比较等于用 eq&lt;/p&gt;
&lt;p&gt;q运算符对’号转义的方式&lt;/p&gt;
&lt;pre class="brush: perl; title: Example; notranslate" title="Example"&gt;$someword = 'i 've some money';
&lt;/pre&gt;
&lt;p&gt;可以等价于:&lt;/p&gt;
&lt;pre class="brush: perl; title: Example; notranslate" title="Example"&gt;$someword = q~i 've some money~;
&lt;/pre&gt;</description></item><item><title>FREEBSD CRONTAB 系统定时任务使用说明</title><link>https://fukun.org/archives/06081130.html</link><pubDate>Wed, 08 Jun 2011 10:36:06 +0800</pubDate><guid>https://fukun.org/archives/06081130.html</guid><description>&lt;p&gt;crontab&lt;/p&gt;
&lt;p&gt;功能说明：设置计时器。定时执行设定好的程序。&lt;/p&gt;
&lt;p&gt;语　　法：crontab [-u &amp;lt;用户名称&amp;gt;][配置文件] 或 crontab [-u &amp;lt;用户名称&amp;gt;][-elr]&lt;/p&gt;
&lt;p&gt;补充说明：cron是一个常驻服务，它提供计时器的功能，让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件，就可以使用计时器的功能。其配置文件格式如下：&lt;/p&gt;
&lt;p&gt;Minute Hour Day Month DayOFWeek Command&lt;/p&gt;
&lt;p&gt;配置命令的取值范围：&lt;/p&gt;
&lt;p&gt;minute (0-59), hour (0-23), day of the month (1-31), month of the year (1-12), day of the week (0-6 with 0=Sunday).&lt;/p&gt;</description></item><item><title>额，服务器瘫痪。。。。。</title><link>https://fukun.org/archives/06071120.html</link><pubDate>Tue, 07 Jun 2011 14:56:37 +0800</pubDate><guid>https://fukun.org/archives/06071120.html</guid><description>&lt;p&gt;用的主机空间瘫痪了。。。&lt;/p&gt;
&lt;p&gt;给换了台机器，所以DNS也要从新解析。。。刚换了解析，等待生效吧。。。&lt;/p&gt;</description></item><item><title>[perl]defined的用法，defined是什么意思</title><link>https://fukun.org/archives/06061133.html</link><pubDate>Mon, 06 Jun 2011 10:39:27 +0800</pubDate><guid>https://fukun.org/archives/06061133.html</guid><description>&lt;p&gt;用法：函数defined返回0、false或者非0、true。&lt;/p&gt;
&lt;p&gt;此运算结果依赖于传递给它进行计算的参数的内容。&lt;/p&gt;
&lt;p&gt;如果参数中不含有字符和数字值，则返回0；如果参数中包含一个字符或者数字值，则返回非0或者true值。&lt;/p&gt;
&lt;p&gt;这对于判断一个已经建立的数组中的每个元素是否已经定义非常有用。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意：此函数作用不是判断某个变量是否已经定义，而是用来判断某个变量是否为空。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>mysql: Error reading file ‘UNOPENED’ (Errcode: 9)</title><link>https://fukun.org/archives/06041252.html</link><pubDate>Sat, 04 Jun 2011 08:55:56 +0800</pubDate><guid>https://fukun.org/archives/06041252.html</guid><description>&lt;p&gt;使用mysqldump导出文件的时候，报这个错误。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;mysql: Error reading file ‘UNOPENED’ (Errcode: 9)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;找半天不知道是什么原因，突然发现，原来是命令写错了。。应该是mysqldump导出的，，我使用了mysql 。。。。&lt;/p&gt;
&lt;p&gt;如：&lt;/p&gt;
&lt;pre class="brush: sql; title: Example; notranslate" title="Example"&gt;&amp;gt; mysql -uroot -p123456 weiyuftpbill &amp;gt; weiyuftpbill.sql
&lt;/pre&gt;</description></item><item><title>苹果禁止第三方利用iPad与iPhone促销</title><link>https://fukun.org/archives/06031114.html</link><pubDate>Fri, 03 Jun 2011 11:23:43 +0800</pubDate><guid>https://fukun.org/archives/06031114.html</guid><description>&lt;p&gt;据国外媒体报道，苹果更加严格地执行其第三方促销指导规则，禁止其他公司和机构在促销活动中免费提供iPad、iPhone或iPhone礼品卡。&lt;/p&gt;
&lt;p&gt;据《财富》杂志报道，苹果只是最近才“开始要求企业执行”其第三方促销指导规则。当前的版本有两页长文件，发布日期最早可追溯到2010年4月，但第三方并非一直遵守。&lt;/p&gt;</description></item><item><title>奥尼尔宣布退役 一代传奇告别</title><link>https://fukun.org/archives/06021110.html</link><pubDate>Thu, 02 Jun 2011 12:28:57 +0800</pubDate><guid>https://fukun.org/archives/06021110.html</guid><description>&lt;p&gt;据ESPN报道，联盟史上最强中锋之一沙奎尔-奥尼尔正式宣布退役。现年39岁的奥尼尔度过了一个辉煌的职业生涯，他帮助湖人完成了三连冠的霸业，并在&lt;/p&gt;
&lt;p&gt;热火再夺1次总冠军奖杯。&lt;/p&gt;
&lt;div id="attachment_1111" style="width: 462px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/06/20110602-oneal-tuiyi.jpg"&gt;&lt;img class="size-full wp-image-1111 " title="20110602-oneal-tuiyi" src="//fukun.org/wp-content/uploads/2011/06/20110602-oneal-tuiyi.jpg" alt="39岁的奥尼尔宣布退役 一代传奇告别" width="452" height="550" srcset="//fukun.org/wp-content/uploads/2011/06/20110602-oneal-tuiyi.jpg 452w, //fukun.org/wp-content/uploads/2011/06/20110602-oneal-tuiyi-247x300.jpg 247w" sizes="(max-width: 452px) 100vw, 452px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 39岁的奥尼尔宣布退役 一代传奇告别
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;奥尼尔是在社交网站上宣布了自己退役的决定。“19年过去了，我下定决心，现在是时候结束了。”奥尼尔说道，“感谢你们的支持和陪伴。”另外在当地时间周五，奥尼尔还将举行新闻发布会，宣布自己退役的决定。&lt;/p&gt;</description></item><item><title>人人网被指伪开放：点点美团被列入封杀名单</title><link>https://fukun.org/archives/06011106.html</link><pubDate>Wed, 01 Jun 2011 14:54:45 +0800</pubDate><guid>https://fukun.org/archives/06011106.html</guid><description>&lt;p&gt;　　6月1日，先祝大家节日快乐~~~&lt;/p&gt;
&lt;p&gt; 　　国内首家上市社交网站人人网身陷“封杀门”，被指“伪开放”。&lt;/p&gt;
&lt;p&gt;　　“仅仅是一个网站由于狭窄的心胸和狭隘的竞争观，去剥夺用户合法的权利，这个网站有这样的权利吗？”昨日，点点网创始人许朝军&lt;!--keyword--&gt;(微博)&lt;/p&gt;
&lt;!--/keyword--&gt;对在人人网无法对外发布含有点点网链接的内容的情况发表公开谴责。据悉，点点网是今年4月才正式开放的社交网站，目前已获得千万美元的融资，却遭老前辈人人网封杀，许朝军怒火中烧，表示“已注销人人网账号，与其永远说再见了”。</description></item><item><title>为iPhone而生 WOW-Keys键盘开售</title><link>https://fukun.org/archives/05311103.html</link><pubDate>Tue, 31 May 2011 13:48:58 +0800</pubDate><guid>https://fukun.org/archives/05311103.html</guid><description>&lt;p&gt;Omnio曾在去年11月发布了一款WOW-Keys键盘，该键盘与华硕Eee Keyboard在设计风格上有异曲同工之妙，但相比Eee Keyboard数字区的5寸触控屏来说，这款Omnio的键盘数字键区则是由iPhone或iTouch取代。&lt;/p&gt;
&lt;div id="attachment_1104" style="width: 510px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/05/20110531-iphone-wow-keys.jpg"&gt;&lt;img class="size-full wp-image-1104" title="20110531-iphone-wow-keys" src="//fukun.org/wp-content/uploads/2011/05/20110531-iphone-wow-keys.jpg" alt="WOW-Keys键盘" width="500" height="217" srcset="//fukun.org/wp-content/uploads/2011/05/20110531-iphone-wow-keys.jpg 500w, //fukun.org/wp-content/uploads/2011/05/20110531-iphone-wow-keys-300x130.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 WOW-Keys键盘
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>一起做《普鲁斯特问卷》吧</title><link>https://fukun.org/archives/05301098.html</link><pubDate>Mon, 30 May 2011 06:14:37 +0800</pubDate><guid>https://fukun.org/archives/05301098.html</guid><description>&lt;div id="attachment_1099" style="width: 232px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/05/20110530-Marcel-Proust-Questionnaire.jpg"&gt;&lt;img class="size-full wp-image-1099 " title="20110530-Marcel-Proust-Questionnaire" src="//fukun.org/wp-content/uploads/2011/05/20110530-Marcel-Proust-Questionnaire.jpg" alt="普鲁斯特问卷" width="222" height="271" srcset="//fukun.org/wp-content/uploads/2011/05/20110530-Marcel-Proust-Questionnaire.jpg 370w, //fukun.org/wp-content/uploads/2011/05/20110530-Marcel-Proust-Questionnaire-246x300.jpg 246w" sizes="(max-width: 222px) 100vw, 222px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 普鲁斯特问卷
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;普鲁斯特问卷简介：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;著名的Proust Questionnaire（普鲁斯特问卷）由一系列问题组成，问题包括被提问者的生活、思想、价值观及人生经验等。因著作《追忆逝水年华》而闻名的 Marcel Proust并不是这份问卷的发明者，但这份问卷因为他特别的答案而出名，并在当年时髦的巴黎人沙龙中颇为流行。因此后人将这份问卷命名为“Proust Questionnaire”。&lt;/p&gt;
&lt;p&gt;普鲁斯特在13岁和20岁的时候分别做了一次调查，答案有很大不同，后来研究普鲁斯特的人士还以此为依据来分析一个作家成长的变化。再后来，名利场（Vanity Fair）杂志开始在每期封底搞普鲁斯特问卷专栏，专门挑一些知名人士来回答。&lt;/p&gt;</description></item><item><title>北京海淀区劳动局判定酷6裁员无效 责令整改</title><link>https://fukun.org/archives/05291095.html</link><pubDate>Sun, 29 May 2011 13:32:00 +0800</pubDate><guid>https://fukun.org/archives/05291095.html</guid><description>&lt;p&gt;5月26日消息，据酷6被裁员工透露，今日凌晨海淀区劳动局认定酷6网5.18裁员事件为违法行为，确认此次裁员无效，并责令酷6网在5月30日前限时整改。&lt;/p&gt;
&lt;div id="attachment_1096" style="width: 470px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/05/20110529-ku6-caiyuan.jpg"&gt;&lt;img class="size-full wp-image-1096" title="20110529-ku6-caiyuan" src="//fukun.org/wp-content/uploads/2011/05/20110529-ku6-caiyuan.jpg" alt="酷6被裁员工在投诉信上签名" width="460" height="344" srcset="//fukun.org/wp-content/uploads/2011/05/20110529-ku6-caiyuan.jpg 460w, //fukun.org/wp-content/uploads/2011/05/20110529-ku6-caiyuan-300x224.jpg 300w" sizes="(max-width: 460px) 100vw, 460px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 酷6被裁员工在投诉信上签名
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;据了解，昨日上午酷6被裁员工集体向北京海淀区劳动局就“暴力裁员”讨说法，希望劳动部门介入此事，并对盛大裁员行为进行处罚。酷6被裁员工还集体提交了投诉信，称盛大闪电暴力裁员的行径，堪称不沟通，不书面，不解释，而自己作为劳动者的法律、经济权益得不到保障，人格得不到尊重。&lt;/p&gt;</description></item><item><title>ThinkPad平板电脑今年8月上市 面向企业用户</title><link>https://fukun.org/archives/05281090.html</link><pubDate>Sat, 28 May 2011 13:28:13 +0800</pubDate><guid>https://fukun.org/archives/05281090.html</guid><description>&lt;p&gt;据中国之声《新闻晚高峰》报道，联想总裁兼COO罗瑞德日前透露，联想ThinkPad平板电脑将在今年8月份上市。&lt;/p&gt;
&lt;p&gt;　　而此前市场方面也已传出消息，联想已经研发出的一款基于ThinkPad设计、面向企业用户的平板电脑，售价会在500-900美元之间。这款可以运行Android和Windows软件，但二者不能兼容。&lt;/p&gt;</description></item><item><title>Facebook估值达875亿美元 再创历史新高</title><link>https://fukun.org/archives/05271092.html</link><pubDate>Fri, 27 May 2011 15:53:28 +0800</pubDate><guid>https://fukun.org/archives/05271092.html</guid><description>&lt;p&gt;据美国科技博客网站TechCrunch报道，以美国非上市公司股票交易市场SharesPost最新的Facebook股票成交记录为标准，Facebook的估值已高达875亿美元，再次创下估值历史新高。&lt;/p&gt;
&lt;p&gt;TechCrunch收集的数据显示，今年3月期间，Facebook股票在SecondMarket及SharesPost等市场的成交价格曾一度涨至每股34美元。以此为标准，则Facebook估值已达850亿美元。但攀升至该价位后，Facebook股票成交价又回落到每股31.50美元左右的水平，此后一直没有出现较大变化。&lt;/p&gt;</description></item><item><title>财付通支付宝等27家企业获得第三方支付牌照,首批牌照或致市场变局</title><link>https://fukun.org/archives/05261085.html</link><pubDate>Thu, 26 May 2011 13:47:06 +0800</pubDate><guid>https://fukun.org/archives/05261085.html</guid><description>&lt;p&gt;5月26日消息，第三方支付牌照已以邮寄的方式发放给相关企业及单位，获得牌照的企业及单位一共27家。其中，财付通、支付宝、快钱等民营第三方支付公司已拿到了牌照。&lt;/p&gt;
&lt;p&gt;中国人民银行去年6月发布《非金融机构支付服务管理办法》，明确规定非金融机构应当取得支付业务许可证，成为支付机构，依法接受中国人民银行的监督管理。据悉，在首批申请的32家企业中，有27家企业及单位拿到牌照。联动优势电子商务、上海得仕企业、上海富友金融、上海畅购企业、上海银联五家申报企业没有获得牌照。 &lt;/p&gt;
&lt;p&gt;作为首批获得《支付业务许可证》的公司，财付通总经理刘颖麒表示，“我们一直积极配合国家相关政策，中国人民银行的监管可以有效规范市场，有利于行业的健康发展。”他认为，《支付业务许可证》的获取，对于财付通具有非常重要的意义，“这将有利于我们获得更多用户和商家的认可”。&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>HTML 5规范即将正式公布 正进行最后聆讯</title><link>https://fukun.org/archives/05251075.html</link><pubDate>Wed, 25 May 2011 02:37:41 +0800</pubDate><guid>https://fukun.org/archives/05251075.html</guid><description>&lt;p&gt;W3C的HTML5社区领袖Shelley今天宣布，HTML5的开发工作已经接近完成，最后一次聆讯工作已经开始，如果在5月22日以前依然没有反对现有HTML5规范的意见，那么该标准就将在2012年成为国际标准。&lt;/p&gt;
&lt;p&gt;目前HTML5已经是事实上的标准，它被各大厂商的浏览器广泛支持，一些游戏开发人员和移动平台都以HTML5作为自己的主要开发平台和未来的发展方向。&lt;/p&gt;
&lt;p&gt;现有的网页标准HTML4早在1997年被通过，而HTML5的修订工作在2004年就已经开始。&lt;/p&gt;</description></item><item><title>WP7新版Mango(芒果)发布 支持中文/今秋可升级</title><link>https://fukun.org/archives/05241067.html</link><pubDate>Tue, 24 May 2011 15:20:35 +0800</pubDate><guid>https://fukun.org/archives/05241067.html</guid><description>&lt;p&gt;北京时间5月24日晚10点，微软在纽约召开发布会，展示Windows Phone 7 Mango系统新增的诸多功能。Mango系统增加了对简体中文的支持，而就在今天下午的在微软中国举行的创新论坛上，微软CEO鲍尔默已经透露，WP7将于秋季正式入华。&lt;/p&gt;
&lt;div id="attachment_1068" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/05/20110524_mango_three_chara.jpg"&gt;&lt;img class="size-full wp-image-1068" title="20110524_mango_three_chara" src="//fukun.org/wp-content/uploads/2011/05/20110524_mango_three_chara.jpg" alt="芒果Mango三大特征" width="550" height="367" srcset="//fukun.org/wp-content/uploads/2011/05/20110524_mango_three_chara.jpg 550w, //fukun.org/wp-content/uploads/2011/05/20110524_mango_three_chara-300x200.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 芒果Mango三大特征
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>使对象可以像数组一样进行foreach循环，要求属性必须是私有。(Iterator模式的PHP5实现，写一类实现Iterator接口)</title><link>https://fukun.org/archives/05231064.html</link><pubDate>Mon, 23 May 2011 03:11:30 +0800</pubDate><guid>https://fukun.org/archives/05231064.html</guid><description>&lt;p&gt;PHP5开始支持了接口， 并且内置了Iterator接口， 所以如果你定义了一个类，并实现了Iterator接口，那么你的这个类对象就是ZEND_ITER_OBJECT,否则就是ZEND_ITER_PLAIN_OBJECT.&lt;/p&gt;
&lt;p&gt;对于ZEND_ITER_PLAIN_OBJECT的类，foreach会通过HASH_OF获取该对象的默认属性数组，然后对该数组进行foreach.&lt;/p&gt;
&lt;p&gt;而对于ZEND_ITER_OBJECT的类对象，则会通过调用对象实现的Iterator接口相关函数来进行foreach， 所以， 对于这道笔试题， 可以作出如下的答案：&lt;/p&gt;</description></item><item><title>PHP-文件类函数-clearstatcache()-受clearstatcache()影响的函数</title><link>https://fukun.org/archives/05221078.html</link><pubDate>Sun, 22 May 2011 15:11:34 +0800</pubDate><guid>https://fukun.org/archives/05221078.html</guid><description>&lt;p&gt;void &lt;strong&gt;clearstatcache&lt;/strong&gt; ( void )&lt;/p&gt;
&lt;p&gt;当使用 stat()，lstat() 或者任何列在受影响函数表（见下面）中的函数时，PHP 将缓存这些函数的返回信息以提供更快的性能。然而在某些情况下，你可能想清除被缓存的信息。例如如果在一个脚本中多次检查同一个文件，而该文件在此脚本执行期间有被删除或修改的危险时，你需要清除文件状态缓存。这种情况下，可以用 &lt;strong&gt;clearstatcache()&lt;/strong&gt; 函数来清除被 PHP 缓存的该文件信息。&lt;/p&gt;</description></item><item><title>PHPCaptcha 被报安全漏洞 以及 解决办法</title><link>https://fukun.org/archives/05211058.html</link><pubDate>Sat, 21 May 2011 10:54:09 +0800</pubDate><guid>https://fukun.org/archives/05211058.html</guid><description>&lt;p&gt;Phil Taylor 指出，PHPCaptcha的音频认证有漏洞，即使停用audio认证，用户也可以访问 /secure_play.php 强制通过。&lt;/p&gt;
&lt;p&gt;解决办法：删除 securimage_play.php 脚本，并停用audio认证.&lt;/p&gt;
&lt;p&gt;原文如下:&lt;/p&gt;
&lt;p&gt;PHPCaptcha, also known as Securimage, is a popular Open Source PHP CAPTCHA library. It is also used in popular WordPress plugins such as&lt;/p&gt;
&lt;p&gt;the ‘Fast Secure Contact Form’. Insufficient distortion in the audio version of the CAPTCHA allows an attacker to quickly decode the CAPTCHA&lt;/p&gt;
&lt;p&gt;by performing basic binary analysis of the generated audio file. The issue is compounded by the fact that even if the audio feature of the&lt;/p&gt;
&lt;p&gt;CAPTCHA has been disabled, it can still be accessed by forceful browsing to the /secure_play.php URI.&lt;/p&gt;</description></item><item><title>什么是ASAP</title><link>https://fukun.org/archives/05201055.html</link><pubDate>Fri, 20 May 2011 07:31:46 +0800</pubDate><guid>https://fukun.org/archives/05201055.html</guid><description>&lt;p&gt;ASAP,&lt;/p&gt;
&lt;p&gt;= as soon as possible&lt;/p&gt;</description></item><item><title>IP和独立访客的区别？</title><link>https://fukun.org/archives/05191048.html</link><pubDate>Thu, 19 May 2011 01:51:34 +0800</pubDate><guid>https://fukun.org/archives/05191048.html</guid><description>&lt;p&gt;IP： 指在一天之内（00:00-24:00）访问您的网站的独立IP数。一天内相同IP地址多次访问网站只被计算1次。&lt;/p&gt;
&lt;p&gt; 独立访客： 指在一天之内（00:00-24:00）访问您的网站的上网电脑数量（以cookie为依据）。一天内同一电脑多次访问网站只被计算1次。&lt;/p&gt;
&lt;p&gt;所以：&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;当独立访客高于IP数的时候正常是以下这种状况：一个局域网对外是相同的一个IP，但是有7个人同时访问，那么这个时候，独立访客为7，唯一IP仅为1。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;当IP高于独立访客的时候正常是以下这种状况：一个用户，上网的时候频繁掉线，ADSL拔号7次均打开了此网站，此时，独立访客仅计为1，而IP数则被计为7。&lt;/span&gt;&lt;/p&gt;
&lt;span style="color: #000000;"&gt;</description></item><item><title>js获取iframe内的内容</title><link>https://fukun.org/archives/05191045.html</link><pubDate>Thu, 19 May 2011 01:45:06 +0800</pubDate><guid>https://fukun.org/archives/05191045.html</guid><description>&lt;p&gt;js获取iframe内内容:&lt;/p&gt;
&lt;p&gt;iframe的id为zz,使用以下语句即可获得iframe内的document，再DOM下去就可以获得iframe内的其它元素了~~&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;&amp;lt;script lang="javascript"&amp;gt;
 alert(document.getElementById("zz").contentWindow.document);
&amp;lt;/script&amp;gt;
&lt;/pre&gt;</description></item><item><title>索尼PSN刚刚上线，旋即再次下线</title><link>https://fukun.org/archives/05181042.html</link><pubDate>Wed, 18 May 2011 15:29:23 +0800</pubDate><guid>https://fukun.org/archives/05181042.html</guid><description>&lt;p&gt;索尼PSN刚刚上线，旋即又&lt;a rel="nofollow" href="http://solidot.org/" target="_blank"&gt;再次下线&lt;/a&gt;。令人怀疑索尼到底从长达26天的下线事故中学到什么？是否认真对待安全，或者只是把这次事件当成意外？&lt;/p&gt;
&lt;p&gt; PSN重置密码的方式只是简单的输入帐号的电子邮件地址和出生日期。换句话说，已窃取用户信息的黑客，可以通过输入窃取的信息而重置任何用户的帐号。索尼接到安全警告后，再次关闭了PSN。&lt;/p&gt;</description></item><item><title>Mono团队自立创业 .NET入侵苹果平台</title><link>https://fukun.org/archives/05171040.html</link><pubDate>Tue, 17 May 2011 13:17:57 +0800</pubDate><guid>https://fukun.org/archives/05171040.html</guid><description>&lt;p&gt;众所周知，.NET其实并不是Windows上的专有技术，这一点很大程度上要感谢Miguel de Icaza所领导的Mono开发团队。他们多年不懈地工作，实现了跨平台的开源.NET实现（包括CLR运行库、C#编译器和其他开发工具、组件）。今天的Mono可以在Windows、Android、Linux、iOS、Mac OS X、Solaris，甚至PlayStation、Xbox上运行。&lt;/p&gt;
&lt;p&gt;但是，Mono团队所在的Novell于去年11月被Attachmate收购，而其知识产权则被Microsoft、Oracle、Apple和EMC共同组成的一个控股公司买下。5月4日，Attachmate宣布裁员数百人，其中包括Mono团队。Mono何去何从，众所关注。&lt;/p&gt;</description></item><item><title>Xdebug教程之Xdebug安装- windows下安装Xdebug for php</title><link>https://fukun.org/archives/05171037.html</link><pubDate>Tue, 17 May 2011 01:01:02 +0800</pubDate><guid>https://fukun.org/archives/05171037.html</guid><description>&lt;p&gt;&lt;strong&gt;为什么需要Xdebug&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等，其实对于有较丰富开发经验的程序员来说这些也已经足够了，他们往往可以在程序执行的过程中，通过输出特定变量的值可以判断程序执行是否正确，甚至效率高低也可以看出来（当然可能还需要使用一些时间函数）。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢？ 这个问题的答案不妨留到后面来揭晓。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;什么是Xdebug&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具)，可以用来跟踪，调试和分析PHP程序的运行状况。Xdebug现在的最新版本是xdebug 2.1.1，支持PHP4/PHP5。&lt;/p&gt;</description></item><item><title>Dropbox被控在安全问题上说谎</title><link>https://fukun.org/archives/05161035.html</link><pubDate>Mon, 16 May 2011 10:25:09 +0800</pubDate><guid>https://fukun.org/archives/05161035.html</guid><description>&lt;p&gt;连线》报导，在线存储服务Dropbox因为在文件隐私和安全上欺骗其2500万用户而可能面临FTC（联邦贸易委员会）调查。Dropbox此前声称，该公司员工不可能访问文件，然而事实上加密密钥就在他们手中。&lt;/p&gt;
&lt;p&gt; 慕容鱼吐的新闻泡 写道 ” Christopher Soghoian指出，欺骗主要包括两点：1.Dropbox的员工可以看到用户存储的文件内容，而且为了节省存储空间，不会接受相同文件的上传（比如甲已经存储了B文件，要是乙存储的文件在上传扫描过程中被发现也是B文件，则事实上不会上传，而是简单的将已有的那份B文件加入到乙的账户内）。2.Dropbox的加密不是在用户的设备端完成的，而是在Dropbox的系统上完成的，这同样意味着文件内容是可以被Dropbox员工获取的。&lt;/p&gt;
&lt;p&gt;Soghoian指出，政府部门，流氓员工或其他想要提出诉讼的公司获取这些内容会给用户造成消极影响。目前Soghoian已向FTC提起申诉(PDF)。”&lt;/p&gt;
&lt;p&gt;中国国内又有多少这样的情况呢？谁又来管呢？&lt;/p&gt;</description></item><item><title>安卓开发者逃离中移动：不满“霸王”收费</title><link>https://fukun.org/archives/05151033.html</link><pubDate>Sun, 15 May 2011 00:25:35 +0800</pubDate><guid>https://fukun.org/archives/05151033.html</guid><description>&lt;p&gt;5月11日，Google高级副总裁VicGundotra在美国旧金山登上了该公司I/O大会的舞台，大屏幕上出现了一张机器人狂吃苹果的手绘图，这确实令谷歌值得兴奋。&lt;/p&gt;
&lt;p&gt;谷歌现在是最被看好的第三方开发平台，全球有1亿部安卓设备被激活，安卓阵营里有215家运营商支持业务、45万个应用开发商、36家 OEM(原设备制造商)。最新数据显示，基于安卓系统的手机出货量在今年第一季度已经超过苹果。&lt;/p&gt;
&lt;p&gt;地球的另一面，中国的内容提供商(下称“CP”)们却在为了安卓叫苦不迭，他们依靠谷歌致富的梦想正在一点点破碎——没有收费渠道是首要原因。中国的手机游戏公司大佬们认为，中国的安卓开发者很可能“死在沙滩上”。&lt;/p&gt;</description></item><item><title>init 6和reboot的区别</title><link>https://fukun.org/archives/05131052.html</link><pubDate>Fri, 13 May 2011 15:58:52 +0800</pubDate><guid>https://fukun.org/archives/05131052.html</guid><description>&lt;p&gt;init命令用于改变操作系统的运行级别。Init 6是重新启动机器。&lt;/p&gt;
&lt;p&gt;reboot也是重新启动机器。&lt;/p&gt;
&lt;p&gt;那么这两个命令到底有什么区别呢？&lt;/p&gt;
&lt;p&gt;对这两个操作使用man命令看到的内容如下：&lt;/p&gt;</description></item><item><title>2011年移动互联网趋势报告</title><link>https://fukun.org/archives/05121030.html</link><pubDate>Thu, 12 May 2011 01:02:36 +0800</pubDate><guid>https://fukun.org/archives/05121030.html</guid><description>&lt;p&gt;2011年5月10日消息，知名风投公司KPCB(Kleiner Perkins Caufield &amp;amp; Byers)日前发布了《移动互联网趋势报告》，该报告通过10大点分析了全球移动互联网发展趋势。传奇风投、KPCB合伙人约翰·杜尔(John Doerr)曾说，“我们正处于一个新时代的开始，社交网络创新者正为用户重新想象和重新定义一个网络 ，这一网络超越文档和网站。”&lt;/p&gt;
&lt;p&gt;随着智能手机、平板电脑等移动设备的出现，移动互联网这一新兴事物蓬勃发展，移动平台正式进入大众市场。当然，在这一发展过程中，也会遭遇一些成长的难题，比如营收模式等。不过无论如何，移动互联网时代正在来临。&lt;/p&gt;
&lt;p&gt;《移动互联网趋势报告》由KPCB合伙人马特·默菲(Matt Murphy)及有“网络女皇”之称的全球著名互联网分析师玛丽·米克(Mary Meeker)共同撰写。&lt;strong&gt;以下是具体分析：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Google Logo CSS实现 纪念现代舞先驱玛莎·葛兰姆</title><link>https://fukun.org/archives/05111027.html</link><pubDate>Wed, 11 May 2011 08:01:50 +0800</pubDate><guid>https://fukun.org/archives/05111027.html</guid><description>&lt;p&gt;Google Logo CSS实现 纪念现代舞先驱玛莎·葛兰姆&lt;/p&gt;
&lt;div id="attachment_1028" style="width: 531px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/05/20110511-google-logo-css.gif"&gt;&lt;img class="size-full wp-image-1028" title="20110511-google-logo-css" src="//fukun.org/wp-content/uploads/2011/05/20110511-google-logo-css.gif" alt="Google css Logo 纪念现代舞先驱玛莎·葛兰姆" width="521" height="166" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Google css Logo 纪念现代舞先驱玛莎·葛兰姆
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>好累</title><link>https://fukun.org/archives/05101019.html</link><pubDate>Tue, 10 May 2011 10:43:15 +0800</pubDate><guid>https://fukun.org/archives/05101019.html</guid><description>&lt;p&gt;好累&lt;/p&gt;</description></item><item><title>PHP 面向对象：设计模式之单例模式</title><link>https://fukun.org/archives/05091022.html</link><pubDate>Mon, 09 May 2011 11:44:25 +0800</pubDate><guid>https://fukun.org/archives/05091022.html</guid><description>&lt;p&gt;单件模式要解决的问题就是“如何让这个类只有一个实例”。&lt;/p&gt;
&lt;p&gt;我们的web应用中，大量使用了数据库连接，如果反复建立与数据库的连接必然消耗更多的系统资源。&lt;/p&gt;
&lt;p&gt;我们如何解决这个问题，建立唯一的数据库连接是必要的方式。&lt;/p&gt;
&lt;p&gt;我们又如何知道与这个数据库的连接是否已经建立？ 还是需要现在建立？&lt;/p&gt;
&lt;p&gt;单件模式可以解决这个问题。&lt;/p&gt;
&lt;p&gt;先假设我们需要一个类完成在内存中只有一份的功能，我们该如何做呢？&lt;/p&gt;
&lt;p&gt;我们一步一步的使用前面学过的知识来写一个单件的例子。&lt;/p&gt;</description></item><item><title>5-8小记</title><link>https://fukun.org/archives/05081017.html</link><pubDate>Sun, 08 May 2011 15:25:47 +0800</pubDate><guid>https://fukun.org/archives/05081017.html</guid><description>&lt;p&gt;今天周日，母亲节。&lt;/p&gt;
&lt;p&gt;想做点东西给自己吃，网上搜了搜菜谱，发现一个炒面，想起了以前妈妈经常做给我吃的那种炒面。&lt;/p&gt;
&lt;p&gt;就给妈妈打了个电话，问了问大概的做法~去菜市场卖肉、买菜、买面条，买回来自己做。&lt;/p&gt;
&lt;p&gt;做的量很足，中午饭有了、晚饭有了，明天的晚饭也有了。。。&lt;/p&gt;
&lt;p&gt;感觉自己做的还行，可惜手机被偷了，拍不了照片了啊。。&lt;/p&gt;
&lt;p&gt;然后就毅然决然的上新蛋拍下了一个看了很长时间一直犹豫中的手机，中兴 v880 ，虽然是国产货，不过性价比还是不错的，作为我第一个Android入门机吧。&lt;/p&gt;
&lt;p&gt;其实人就这个样，总以为别人的东西都是好的，国人疯狂的买着外国货，老外疯狂的抢着中国货。&lt;/p&gt;</description></item><item><title>在Apache服务器内部通信</title><link>https://fukun.org/archives/05071014.html</link><pubDate>Sat, 07 May 2011 14:58:09 +0800</pubDate><guid>https://fukun.org/archives/05071014.html</guid><description>&lt;p&gt;问题：&lt;/p&gt;
&lt;p&gt;想要实现PHP与Apache请求进程的其它部分之间的通信。其中包括在access_log中设置变量。&lt;/p&gt;
&lt;p&gt;方案：&lt;/p&gt;
&lt;p&gt;使用apache_note()。&lt;/p&gt;</description></item><item><title>js 获取、设置textarea的值</title><link>https://fukun.org/archives/05061011.html</link><pubDate>Fri, 06 May 2011 15:11:20 +0800</pubDate><guid>https://fukun.org/archives/05061011.html</guid><description>&lt;p&gt;如何通过 js  获取、设置textarea的值，一个简单的小例子就能看懂了~&lt;/p&gt;
&lt;pre class="brush: xml; title: Example; notranslate" title="Example"&gt;&amp;lt;textarea id="txta"&amp;gt;test&amp;lt;/textarea&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
 var txt;
 txt = document.getElementById('txta').value;	//获取textarea的值
 document.write (txt);
 document.getElementById('txta').value = "txt2";	//设置textarea的值
&amp;lt;/script&amp;gt;
&lt;/pre&gt;</description></item><item><title>没有思考能力的机器</title><link>https://fukun.org/archives/05051008.html</link><pubDate>Thu, 05 May 2011 15:28:25 +0800</pubDate><guid>https://fukun.org/archives/05051008.html</guid><description>&lt;p&gt;人工智能和认知科学领域的奠基者和重要人物纷纷表示，AI在过去几十年停滞不前，&lt;a rel="nofollow" href="http://www.technologyreview.com/computing/37525/?p1=A2&amp;a=f"&gt;AI研究需要一次重启&lt;/a&gt;。 __&lt;/p&gt;
&lt;p&gt;Marvin Minsky说，为什么没有机器人能去修复日本的核反应堆？原因是AI在60和70年代取得了很大的进步，但随后走上了错误道路。今天的学生津津乐道于打篮球踢足球跳舞或搞笑的机器人，但是这些机器人并没有变聪明。从1972年到1997年期间担任MIT人工智能实验室主任的Patrick Winston附和了Minsky的评论，认为过去20年确实没有进展，问题从80年代开始呈现，部分原因是冷战结束后资金流开始枯竭，研究人员尝试探索商业化AI。而最大的问题是AI研究日益狭窄和专业化，如神经网络和遗传算法，而基础问题无人问津，没人着手解决。&lt;/p&gt;</description></item><item><title>华为中兴4G近身肉搏 工信部介入或握手言和 本是同根生，相煎何太急吖</title><link>https://fukun.org/archives/05041004.html</link><pubDate>Wed, 04 May 2011 11:33:33 +0800</pubDate><guid>https://fukun.org/archives/05041004.html</guid><description>&lt;p&gt;深陷爱立信诉讼泥潭的中兴通讯，又面临来自同城兄弟华为的专利起诉。&lt;/p&gt;
&lt;p&gt;华为4月28日，宣布在德国、法国和匈牙利起诉中兴通讯，称对方侵犯华为的专利权和商标权。一天之后，中兴通讯用反诉表明自己的立场。4月29日，中兴在中国针对华为侵犯中兴通讯第四代移动通信系统(LTE)若干重要专利递交了诉状。&lt;/p&gt;</description></item><item><title>中国继续名列美国301重点观察名单</title><link>https://fukun.org/archives/05031001.html</link><pubDate>Tue, 03 May 2011 11:29:42 +0800</pubDate><guid>https://fukun.org/archives/05031001.html</guid><description>&lt;p&gt;美国5月2号发布了&lt;a href="http://www.iipa.com/pdf/IIPAReleaseOnUSTRSpecial301Report050211.pdf"&gt;2011年度知识产权特别301调查报告&lt;/a&gt;(PDF)，继续将中国、加拿大、俄罗斯、印度和泰国等12个国家列入重点观察国家名单。 报告对中国日益猖獗的盗版和伪造行为表达关切，并对中国“自主创新”和其他产业歧视政策表示关注，称这些政策让美国出口产品的竞争力和美国的发明者处于不利地位。美国贸易代表处同时首次邀请名单上的国家与美国合作，共同制订行动计划，解决存在的侵权问题。&lt;/p&gt;</description></item><item><title>ASP出错代码集合</title><link>https://fukun.org/archives/05021229.html</link><pubDate>Sun, 01 May 2011 23:37:13 +0800</pubDate><guid>https://fukun.org/archives/05021229.html</guid><description>&lt;p&gt;ActiveServerPages,ASP0126(0x80004005)–&amp;gt;找不到包含文件&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–&amp;gt;sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态，或表不存在于conn打开的数据库中)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–&amp;gt;sql语句出错(字段名错误,或数据类型不匹配)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–&amp;gt;sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–&amp;gt;sql语句出错(要插入或更新的数据溢出)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–&amp;gt;sql语句出错(update字段名或要更新的数据类型错误)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80004005)–&amp;gt;sql语句出错(要插入或更新的字段的数值不能为空值)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80004005) –&amp;gt;打开数据库出错，没有在指定目录发现数据库&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)–&amp;gt;没有发现表&lt;/p&gt;</description></item><item><title>师兄结婚庆典DIY</title><link>https://fukun.org/archives/0501996.html</link><pubDate>Sun, 01 May 2011 11:42:23 +0800</pubDate><guid>https://fukun.org/archives/0501996.html</guid><description>&lt;p&gt;师兄结婚，全部DIY，好像学生会在搞活动一样，除了彩虹门，酒塔，泡泡机，红地毯等少量结婚必备用具是从婚庆公司拿来的，其他好多东西都是自己找人安排的，司仪，DV摄影，AV系统，全是用的我们学校的设备和学生会的人，我负责投影和AV。&lt;/p&gt;
&lt;p&gt;感觉很不错，比一般的婚礼多了很多新意~~&lt;/p&gt;</description></item><item><title>5-1小假</title><link>https://fukun.org/archives/0429991.html</link><pubDate>Fri, 29 Apr 2011 11:24:56 +0800</pubDate><guid>https://fukun.org/archives/0429991.html</guid><description>&lt;p&gt;5-1小假期，有一师兄结婚，要去唐山参加婚礼~&lt;/p&gt;
&lt;p&gt;正好最近心情不爽，再回学校看看，见见老师朋友，放松放松~~~&lt;/p&gt;</description></item><item><title>心流理论 Flow (psychology)</title><link>https://fukun.org/archives/0428988.html</link><pubDate>Thu, 28 Apr 2011 05:10:18 +0800</pubDate><guid>https://fukun.org/archives/0428988.html</guid><description>&lt;p&gt;&lt;strong&gt;心流&lt;/strong&gt;（英语：flow）定义是一种将个人精神力完全投注在某种活动上的感觉；心流产生时同时会有高度的兴奋及充实感。&lt;/p&gt;
&lt;h2 id="心流的发生"&gt;心流的发生&lt;/h2&gt;
&lt;p&gt;米哈里·齐克森认为，使心流发生的活动有以下特征：&lt;/p&gt;</description></item><item><title>淘宝一分钱团购开团招质疑 5秒不到页面消失</title><link>https://fukun.org/archives/0427984.html</link><pubDate>Wed, 27 Apr 2011 14:29:39 +0800</pubDate><guid>https://fukun.org/archives/0427984.html</guid><description>&lt;p&gt;4月25日，拖延近两个月的淘宝聚划算“一分钱占座”团购项目终于开团。而此次姗姗来迟的开团也是问题多多：此前公布的“九大团购梦想”缩水为3个团购项目，团购页面仅上线几秒钟就火速消失，一些用户根本没有收到开团通知……为此，多名参与过“一分钱占座”的用户在淘宝论坛的维权板块发帖抗议。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;成行团购项目大缩水&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;今年2月14日，淘宝聚划算通过其官方网站打出“你敢想，我敢团”的团购活动页面，号召消费者在“聚划算”指定的网站上发布自己希望团购的“梦想”，然后从众多梦想中依据人气选出了“九大梦想”，并称从2月27日起，参与者只需先付一分钱就可“占座”团购这“九大梦想”。最终，“1888元团iPhone416G手机”、“1200元团佳能500D相机”、“60元团1年淘宝购物快递费”等9个项目入围。本次活动吸引了942103人次参加，下单数量高达1032743单。淘宝方面当时承诺从3月份起陆续开团，结果一直拖而不决。&lt;/p&gt;</description></item><item><title>开心网再诉人人网：申请以19楼案为判案参考</title><link>https://fukun.org/archives/0426981.html</link><pubDate>Tue, 26 Apr 2011 14:27:30 +0800</pubDate><guid>https://fukun.org/archives/0426981.html</guid><description>&lt;p&gt;4月26日消息，“真假开心网”案再起波澜，开心网今天宣布，已向最高人民法院申请再审，被告方为人人网的主体公司，案件一审的败诉方为千橡网景公司。&lt;/p&gt;
&lt;p&gt;据介绍，开心网向最高人民法院提出的再审申请包括5项请求：&lt;/p&gt;
&lt;p&gt;1、撤销（2011）高民终字第846号《民事判决书》；&lt;/p&gt;
&lt;p&gt;2、撤销（2009）二中民初第10988号《民事判决书》第二、三项；&lt;/p&gt;
&lt;p&gt;3、判决两个被申请人停止使用“kaixin.com”域名；&lt;/p&gt;
&lt;p&gt;4、改判两个被申请人赔偿申请人经济损失1000万元；&lt;/p&gt;
&lt;p&gt;5、判令两个被申请人在新浪网、《京华时报》、《北京晚报》、《光明日报》上公开赔礼道歉。&lt;/p&gt;</description></item><item><title>MySQL存储引擎各自特点优缺点</title><link>https://fukun.org/archives/0425976.html</link><pubDate>Mon, 25 Apr 2011 12:16:26 +0800</pubDate><guid>https://fukun.org/archives/0425976.html</guid><description>&lt;p&gt;MySQL有多种存储引擎：&lt;/p&gt;
&lt;p&gt;MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。&lt;/p&gt;
&lt;p&gt;MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎：&lt;/p&gt;</description></item><item><title>CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’</title><link>https://fukun.org/archives/0425973.html</link><pubDate>Mon, 25 Apr 2011 09:46:14 +0800</pubDate><guid>https://fukun.org/archives/0425973.html</guid><description>&lt;p&gt;CentOS Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’&lt;/p&gt;
&lt;p&gt;如果仅仅只yum 安装了mysql这个包，启动mysql时就会提示：&lt;/p&gt;
&lt;p&gt;ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’&lt;/p&gt;
&lt;p&gt;yum安装mysql这个包其实是MySQL 客户端程序和共享库，所以我们还需要安装php-mysql和mysql-server这两个包.&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;[root@localhost ~] yum install mysql mysql-server php-mysql -y
[root@localhost ~] chkconfig mysqld on
[root@localhost ~] service mysqld start
[root@localhost ~] service httpd restart
&lt;/pre&gt;</description></item><item><title>Centos 硬盘安装 重新安装系统</title><link>https://fukun.org/archives/0425969.html</link><pubDate>Mon, 25 Apr 2011 08:45:42 +0800</pubDate><guid>https://fukun.org/archives/0425969.html</guid><description>&lt;p&gt;通过硬盘安装的CentOS需要重新安装的话，过程也很简单，只要在开机进入选择菜单的时候，不断的按“下”键，切换到Other后回车，进入到原来的XP系统。通过磁盘管理器，将分配给Centos的分区删除掉，然后再重新安装就OK。(另一种简单的重装方法请见文尾)现在来说一下整个安装过程。&lt;/p&gt;</description></item><item><title>iPhone5新外形曝光</title><link>https://fukun.org/archives/0425964.html</link><pubDate>Mon, 25 Apr 2011 01:52:19 +0800</pubDate><guid>https://fukun.org/archives/0425964.html</guid><description>&lt;p&gt;几乎每天我们都能看到不少有关iPhone5的消息，但似乎基本上都是翻炒的内容，鲜有真正能吸引眼球的新消息被披露。不过，日前来自海外媒体thisismynext.com的报道终于为大家带来了一些不一样的内容。按照他们的说法，新一代iPhone在外形上将进行大幅度的改动，整体风格上接近MacBook Air，并且除了将触控屏尺寸增至3.7英寸之外，还会为Home键增加手势感应功能。&lt;/p&gt;
&lt;div id="attachment_965" style="width: 510px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/04/apple-iPhone5-image-1.jpg"&gt;&lt;img class="size-full wp-image-965" title="apple-iPhone5-image-1" src="//fukun.org/wp-content/uploads/2011/04/apple-iPhone5-image-1.jpg" alt="MacBook Air风格 iPhone5新外形曝光" width="500" height="289" srcset="//fukun.org/wp-content/uploads/2011/04/apple-iPhone5-image-1.jpg 500w, //fukun.org/wp-content/uploads/2011/04/apple-iPhone5-image-1-300x173.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 MacBook Air风格 iPhone5新外形曝光
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;**&lt;/p&gt;</description></item><item><title>俄罗斯 “外星人” 原来是场恶作剧</title><link>https://fukun.org/archives/0424961.html</link><pubDate>Sun, 24 Apr 2011 02:56:54 +0800</pubDate><guid>https://fukun.org/archives/0424961.html</guid><description>&lt;p&gt;俄罗斯网友日前上传的西伯利亚“外星人尸体”视频在全世界范围内引起了热议。不过，俄罗斯警方很快否定了该事件的真实性。经盘问，上传者承认，他们用布娃娃和鸡皮作为道具导演了这场恶作剧。&lt;/p&gt;
&lt;div id="attachment_962" style="width: 510px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/04/Russia-et-lie.jpg"&gt;&lt;img class="size-full wp-image-962" title="Russia-et-lie" src="//fukun.org/wp-content/uploads/2011/04/Russia-et-lie.jpg" alt="俄居民称发现外星人尸体 外形损毁酷似E.T" width="500" height="372" srcset="//fukun.org/wp-content/uploads/2011/04/Russia-et-lie.jpg 500w, //fukun.org/wp-content/uploads/2011/04/Russia-et-lie-300x223.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 俄居民称发现外星人尸体 外形损毁酷似E.T
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;据报道，这段视频在网络大规模流传后，俄罗斯警方马上对此展开了调查。警方通过上传者的邮箱地址找到了他们的地址，经过盘问证明这是一场恶搞。&lt;/p&gt;</description></item><item><title>简明教程：如何在Solaris操作系统上开发C 应用程序</title><link>https://fukun.org/archives/0423956.html</link><pubDate>Sat, 23 Apr 2011 15:24:12 +0800</pubDate><guid>https://fukun.org/archives/0423956.html</guid><description>&lt;p&gt;&lt;strong&gt;1，开发C程序的必要工具和设置&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A,Solaris下的开发工具&lt;/p&gt;
&lt;p&gt;在solaris下开发C应用程序，缺省开发环境是Sun Studio。目前Sun Studio 11是Sun公司最新的C/C++/Fortran开发工具，这个工具已经安装在Unix体验中心的服务器上，我们可以直接使用。在Sun Studio 中，其中C程序的编译工具名称为cc。还有的就是make这个命令,make命令是Solaris安装后就自带了，不需要我们另外安装。&lt;/p&gt;</description></item><item><title>谷歌团购 Google Offers上线</title><link>https://fukun.org/archives/0422953.html</link><pubDate>Fri, 22 Apr 2011 05:58:12 +0800</pubDate><guid>https://fukun.org/archives/0422953.html</guid><description>&lt;p&gt;去年年底，Google曾抛出60亿美元试图&lt;a rel="nofollow" href="http://it.solidot.org/it/10/12/01/0954219.shtml?tid=26"&gt;收购团购网站Groupon&lt;/a&gt;，但遭到拒绝。在竞购失败后，Google便传出将推出相似的服务Google Offers。现在，&lt;a href="https://www.google.com/offers/t#%21subscribe"&gt;Google Offers的beta版&lt;/a&gt;已经正式上线，但暂时只支持纽约市(下城/中城/上城)、波特兰，奥克兰/东湾和旧金山。Google在页面上声称，团购将能让消费者获得五折以上的折扣，但目前尚未有交易提供。&lt;/p&gt;</description></item><item><title>cmake命令 安装、用法简介</title><link>https://fukun.org/archives/0421949.html</link><pubDate>Thu, 21 Apr 2011 10:28:03 +0800</pubDate><guid>https://fukun.org/archives/0421949.html</guid><description>&lt;p&gt;**作者：孙晓明，**华清远见嵌入式学院讲师。&lt;/p&gt;
&lt;p&gt;前言**：**&lt;/p&gt;
&lt;p&gt;cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。后来经过发展，最终形成体系，在2001年成为一个独立的开放源代码项目。其官方网站是www.cmake.org，可以通过访问官方网站来获得更多关于cmake的信息，而且目前官方的英文文档比以前有了很大的改进，可以作为实践中的参考手册。&lt;/p&gt;</description></item><item><title>CentOS groupadd Command not found 如何解决？如何配置环境变量?</title><link>https://fukun.org/archives/0421944.html</link><pubDate>Thu, 21 Apr 2011 04:46:02 +0800</pubDate><guid>https://fukun.org/archives/0421944.html</guid><description>&lt;p&gt;在CentOS系统下，使用groupadd或者其它命令，诸如useradd等时，提示  Command not found.&lt;/p&gt;
&lt;p&gt;命令找不到，想必就是环境变量的配置问题了。&lt;/p&gt;
&lt;p&gt;先&lt;/p&gt;
&lt;pre class="brush: bash; title: Example; notranslate" title="Example"&gt;which groupadd
&lt;/pre&gt;</description></item><item><title>shell中的管道命令head详解</title><link>https://fukun.org/archives/0420940.html</link><pubDate>Wed, 20 Apr 2011 08:14:13 +0800</pubDate><guid>https://fukun.org/archives/0420940.html</guid><description>&lt;p&gt;linux shell中的管道&lt;code&gt;&amp;lt;span style=&amp;quot;font-family: NSimsun;&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt;&lt;/code&gt;是非常方便的功能，可以将一个程序的输出作为另外一个程序的输入，这样我们可以将多个命令“拼”在一起，省去了临时文件的繁琐。windows中也有类似的用法，比如&lt;code&gt;&amp;lt;span style=&amp;quot;font-family: NSimsun;&amp;quot;&amp;gt;dir |more&amp;lt;/span&amp;gt;&lt;/code&gt;，学过dos命令的应该都知道的。&lt;/p&gt;
&lt;p&gt;既然是管道，那么就有一个入口和一个出口，各自对应一个应用程序，正常的情况下，入口应用程序的输出应当被出口应用程序全部接受，但在一些特殊情况，出口应用程序会提前关闭管道，比如在查询svn的更新日志，只取前己行的时候：&lt;/p&gt;</description></item><item><title>编程数学题一枚，求解。</title><link>https://fukun.org/archives/0419935.html</link><pubDate>Tue, 19 Apr 2011 10:18:04 +0800</pubDate><guid>https://fukun.org/archives/0419935.html</guid><description>&lt;p&gt;有三个袋子，里面装有数量质量完全相同的豆子，一个袋子中的豆子是黑色的、一个是白色、最后一个是相等数量的黑色和白色混合。袋子外边贴有标签，但是标签完全贴混了，现在，每次可以从一个袋子中取出一个豆子，问，至少取出多少颗豆子，才能识别出每个袋子中是什么的豆子。&lt;/p&gt;
&lt;p&gt;选项： A  1颗    B 2颗    C 4颗   D 半袋&lt;/p&gt;</description></item><item><title>PHP部分函数、知识点小结</title><link>https://fukun.org/archives/0418931.html</link><pubDate>Mon, 18 Apr 2011 13:32:19 +0800</pubDate><guid>https://fukun.org/archives/0418931.html</guid><description>&lt;p&gt;magic_quotes_gpc = on ,addslashes()  加&lt;/p&gt;
&lt;p&gt;stripslashes() 去掉&lt;/p&gt;
&lt;p&gt;escapeshellcmd()   过滤cmd&lt;/p&gt;
&lt;p&gt;strip_tags()  过滤html 和php 标记&lt;/p&gt;
&lt;p&gt;htmlspecialchars()  转化&amp;lt; 为 无害标记 &amp;lt;&lt;/p&gt;
&lt;p&gt;ssl    443  端口&lt;/p&gt;</description></item><item><title>php 冒泡法排序、快速排序 示例</title><link>https://fukun.org/archives/0417929.html</link><pubDate>Sun, 17 Apr 2011 12:59:30 +0800</pubDate><guid>https://fukun.org/archives/0417929.html</guid><description>&lt;h1 id="冒泡法"&gt;冒泡法：&lt;/h1&gt;
&lt;p&gt;每个依次同其它数据比较，先选出最大（最小）的，再选第二大（小）的。&lt;/p&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;//冒泡排序
function maopao($arr)
{
	$n = count($arr);
	for($j=0;$j&amp;lt;$n-1;$j++)
	{
		for($i=$j+1;$i&amp;lt;=$n-1;$i++)
		{
			if($arr[$j]&amp;gt;$arr[$i])
			{
				$t = $arr[$i];
				$arr[$i] = $arr[$j];
				$arr[$j]=$t;
			}
		}
	}
	return $arr;
}
$arr = array(1,5,4,7,3,2);
print_r($arr);
&lt;/pre&gt;</description></item><item><title>Hash分表算法</title><link>https://fukun.org/archives/0416912.html</link><pubDate>Sat, 16 Apr 2011 11:07:02 +0800</pubDate><guid>https://fukun.org/archives/0416912.html</guid><description>&lt;div&gt;
 &lt;span&gt;构建大型网站的时候，往往需要用到分表技术。&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;span&gt;比如构建千万级用户的网站，就需要水平分割用户表。&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;span&gt;&lt;strong&gt;一、概述&lt;/strong&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;span&gt;    分表是个目前算是比较炒的比较流行的概念，特别是在大负载的情况下，分表是一个良好分散数据库压力的好方法。&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;span&gt;首先要了解为什么要分表，分表的好处是什么。我们先来大概了解以下一个数据库执行SQL的过程：&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;span&gt;接收到SQL &amp;#8211;&gt; 放入SQL执行队列 &amp;#8211;&gt; 使用分析器分解SQL &amp;#8211;&gt; 按照分析结果进行数据的提取或者修改 &amp;#8211;&gt; 返回处理结果&lt;/span&gt;
&lt;/div&gt;</description></item><item><title>PHP error_reporting() 函数用法及示例</title><link>https://fukun.org/archives/0416906.html</link><pubDate>Sat, 16 Apr 2011 09:29:42 +0800</pubDate><guid>https://fukun.org/archives/0416906.html</guid><description>&lt;h2 id="定义和用法"&gt;定义和用法&lt;/h2&gt;
&lt;p&gt;error_reporting() 设置 PHP 的报错级别并返回当前级别。&lt;/p&gt;
&lt;h3 id="语法"&gt;语法&lt;/h3&gt;
&lt;pre&gt;error_reporting(report_level)&lt;/pre&gt;
&lt;p&gt;本函式用来设定错误讯息回报的等级，参数 level 是一个整数的位元遮罩 (bitmask)，见下表。&lt;/p&gt;
&lt;table&gt;
 &lt;tr&gt;
 &lt;td&gt;
 value
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 constant
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 1
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_ERROR
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 2
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_WARNING
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 4
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_PARSE
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 8
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_NOTICE
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 16
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_CORE_ERROR
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 32
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_CORE_WARNING
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 64
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_COMPILE_ERROR
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 128
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_COMPILE_WARNING
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 256
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_USER_ERROR
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 512
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_USER_WARNING
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 1024
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_USER_NOTICE
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 2047
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_ALL
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;
 2048
 &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td&amp;gt;
 E_STRICT
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>学以致用</title><link>https://fukun.org/archives/0415903.html</link><pubDate>Fri, 15 Apr 2011 07:44:30 +0800</pubDate><guid>https://fukun.org/archives/0415903.html</guid><description>&lt;p&gt;各个部门总是有数据库用户查询的需求，每次都要跑去拼凑个sql语句，查出来，再把结果导出成excel，有点繁琐。&lt;/p&gt;
&lt;p&gt;于是，自己抽空鼓捣了一个小tools，可以很方便的查询了，而且在导出前会显示sql语句，可以再次灵活的修改sql语句后再进行导出操作，很方便，他们来提需求，马上就可以给他们结果啦~&lt;/p&gt;
&lt;div id="attachment_904" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/04/kehu-database-sqll-select-20110415.jpg"&gt;&lt;img class="size-large wp-image-904" title="kehu-database-sqll-select-20110415" src="//fukun.org/wp-content/uploads/2011/04/kehu-database-sqll-select-20110415-600x436.jpg" alt=".Net制作的数据库查询小工具" width="600" height="436" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 .Net制作的数据库查询小工具
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>C# Winform中导出DataSet到Excel,使用保存文件对话框</title><link>https://fukun.org/archives/0414899.html</link><pubDate>Thu, 14 Apr 2011 07:24:19 +0800</pubDate><guid>https://fukun.org/archives/0414899.html</guid><description>&lt;p&gt;首先，需要添加引用Excel.dll，Excel组件VS.Net本身是没有的，以下是生成Excel.dll的方法。&lt;/p&gt;
&lt;p&gt;1.要保证机器本身要安装Microsoft Office。&lt;/p&gt;
&lt;p&gt;2.把C:Program FilesMicrosoft OfficeOffice1:【office 安装路径】下的EXCEL9.OLB文件拷贝到C:Visual Studio.NetSDKv1.1Bin:【VS.Net安装路径】路径下。&lt;/p&gt;
&lt;p&gt;3.打开Visual Studio .Net2003/2008命令提示，运行TlbImp Excel9.olb Excel.dll ，就会在[C:Visual Studio.NetSDKv1.1Bin]下生成Excel.dll组件。(Tlbimp命令是vs自带的一个工具，位于Microsoft Visual Studio 8SDKv2.0Bin下)&lt;/p&gt;
&lt;p&gt;4.把Excel.dll复制到你的项目中，在项目中添加Excel.dll引用就可以了。(最好是用最新版本的Office生成excel.dll，否则旧版本的office的dll有可能在高版本机器上不兼容。)&lt;/p&gt;</description></item><item><title>IE9你用过了么？微软IE10发布 支持ARM架构(包含IE10下载地址)</title><link>https://fukun.org/archives/0413892.html</link><pubDate>Wed, 13 Apr 2011 03:11:43 +0800</pubDate><guid>https://fukun.org/archives/0413892.html</guid><description>&lt;p&gt;前段时间，IE9正式版才刚刚发布，昨天MIX 11开发者大会上，微软又发布了IE10的早起平台预览版（IE10 Platform Preview 1），并立即提供了下载，并称新浏览器是微软在发布自带HTML5支持的下一阶段发展上迈出的第一步。&lt;/p&gt;
&lt;p&gt;IE10平台预览版只支持Windows7，相比下IE9平台预览版支持Vista和7。微软曾宣布每八周发布一个新版本，新版IE10的发布异于原定的发布周期。&lt;/p&gt;
&lt;div id="attachment_893" style="width: 510px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/04/20110413-IE10-Download-publish.jpg"&gt;&lt;img class="size-full wp-image-893" title="20110413-IE10-Download-publish" src="//fukun.org/wp-content/uploads/2011/04/20110413-IE10-Download-publish.jpg" alt="微软IE10发布" width="500" height="258" srcset="//fukun.org/wp-content/uploads/2011/04/20110413-IE10-Download-publish.jpg 500w, //fukun.org/wp-content/uploads/2011/04/20110413-IE10-Download-publish-300x155.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 微软IE10发布
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>阿拉伯数字大写，阿拉伯数字中文大写</title><link>https://fukun.org/archives/0412889.html</link><pubDate>Tue, 12 Apr 2011 08:33:53 +0800</pubDate><guid>https://fukun.org/archives/0412889.html</guid><description>&lt;p&gt;阿拉伯数字中文大写写法：&lt;/p&gt;
&lt;table style="font-size: 32px;" border="0" cellspacing="3" cellpadding="3"&gt;
 &lt;tr&gt;
 &lt;th&gt;
 1
 &lt;/th&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;th&amp;gt;
 2
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 3
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 4
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 5
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 6
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 7
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 8
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 9
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 十
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 百
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 千
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 万
&amp;lt;/th&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;
 壹
 &lt;/th&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;th&amp;gt;
 贰
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 叁
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 肆
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 伍
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 陆
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 柒
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 捌
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 玖
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 零
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 拾
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 佰
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 仟
&amp;lt;/th&amp;gt;

&amp;lt;th&amp;gt;
 万
&amp;lt;/th&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;hr&gt;</description></item><item><title>windows 不能在 本地计算机 启动 SQL SERVER (MSSQLSERVER)。，服务错误代码 3417</title><link>https://fukun.org/archives/0411883.html</link><pubDate>Mon, 11 Apr 2011 10:27:13 +0800</pubDate><guid>https://fukun.org/archives/0411883.html</guid><description>&lt;blockquote&gt;
&lt;p&gt;windows 不能在 本地计算机 启动 SQL SERVER (MSSQLSERVER)。有关更多信息,查阅系统事件日志。如果这是非MICROSOFT 服务，请与服务厂商联系，并参考特定服务错误代码 3417&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Windows下Dos命令使用Xcopy备份指定格式文件</title><link>https://fukun.org/archives/0410880.html</link><pubDate>Sun, 10 Apr 2011 13:58:41 +0800</pubDate><guid>https://fukun.org/archives/0410880.html</guid><description>&lt;p&gt;先来看看Xcopy的语法:&lt;/p&gt;
&lt;p&gt;Xcopy&lt;/p&gt;
&lt;p&gt;复制文件和目录，包括子目录。&lt;/p&gt;
&lt;p&gt;语法&lt;/p&gt;
&lt;p&gt;xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]&lt;/p&gt;
&lt;p&gt;参数&lt;/p&gt;
&lt;p&gt;Source&lt;/p&gt;
&lt;p&gt;必需的。指定要复制的文件的位置和名称。该参数必须包含驱动器或路径。&lt;/p&gt;
&lt;p&gt;Destination&lt;/p&gt;
&lt;p&gt;指定要复制的文件的目标。该参数可以包含驱动器盘符和冒号、目录名、文件名或者它们的组合。&lt;/p&gt;
&lt;p&gt;/w&lt;/p&gt;
&lt;p&gt;在开始复制文件之前将显示以下消息并等待您的响应：&lt;/p&gt;
&lt;p&gt;Press any key to begin copying file(s)&lt;/p&gt;
&lt;p&gt;/s&lt;/p&gt;
&lt;p&gt;复制非空的目录和子目录。如果省略 /s，xcopy 将在一个目录中工作。&lt;/p&gt;
&lt;p&gt;/q&lt;/p&gt;
&lt;p&gt;禁止显示 xcopy 消息。&lt;/p&gt;</description></item><item><title>iPad2通过3C认证 5月国内上市</title><link>https://fukun.org/archives/0410878.html</link><pubDate>Sun, 10 Apr 2011 03:47:50 +0800</pubDate><guid>https://fukun.org/archives/0410878.html</guid><description>&lt;p&gt;苹果iPad 2已经通过我国的3C认证，证书编号为2011010902468575，发证日期为4月8日。按照以往的管理，通过了3C认证，苹果相关产品入华的时间就指日可待。在国内的果粉们不仅仅可以通过水货尝鲜，而是通过行货来体验ipad2产品。&lt;/p&gt;</description></item><item><title>手机 欧版-亚太版-香港行货-深圳水货的区别</title><link>https://fukun.org/archives/0409876.html</link><pubDate>Sat, 09 Apr 2011 10:56:03 +0800</pubDate><guid>https://fukun.org/archives/0409876.html</guid><description>&lt;p&gt;1，香港水货欧版——本应该销往欧洲地区，手机是英文菜单。&lt;/p&gt;
&lt;p&gt;2，香港水货亚太版——本应该销往台湾、马来西亚、新加坡、泰国、日本等亚太地区。手机有繁体中文或英文菜单选项，有的原装简体中文菜单。&lt;/p&gt;
&lt;p&gt;3，香港行货——销往香港地区。手机有繁体中文或英文菜单选项，有的还有简体中文菜单，一般都原装笔划键盘。&lt;/p&gt;
&lt;p&gt;4，深圳水货——深圳货源手机，简体中文菜单，大部分无原配包装与说明书，只保证机头与电池原装，包装与说明书一般均为后配印刷品。&lt;/p&gt;</description></item><item><title>极为悲剧的一天….</title><link>https://fukun.org/archives/0408867.html</link><pubDate>Fri, 08 Apr 2011 15:59:09 +0800</pubDate><guid>https://fukun.org/archives/0408867.html</guid><description>&lt;p&gt;今天真是我极为悲剧的一天，快要下班的时候，被告知，需要去机房一趟，机房在东直门。。。离公司好远的。&lt;/p&gt;
&lt;p&gt;可是这个点，周五，下午临下班，正是堵车的时候，打车肯定慢，只好去坐地铁，然后到了机房，拾掇拾掇，8点多了。然后开始往回走，依旧是坐地铁，在万寿路等公交车就等了20多分钟，快10点的时候才快到家。。&lt;/p&gt;
&lt;p&gt;到楼下后，准备掏门禁卡开楼下的门禁，找个半天，却发现找不到。。。。#24。。&lt;/p&gt;</description></item><item><title>浪潮服务器 安装Windows Server 2003 找不到硬盘</title><link>https://fukun.org/archives/0408863.html</link><pubDate>Fri, 08 Apr 2011 15:54:28 +0800</pubDate><guid>https://fukun.org/archives/0408863.html</guid><description>&lt;p&gt;今天快下班的时候，跑去了公司机房，要把一台Centos的服务器换成Windows Server 2003系统。&lt;/p&gt;
&lt;p&gt;到机房后，兴冲冲的直接塞盘，启动。&lt;/p&gt;
&lt;p&gt;却在Windows Server 2003的安装界面被告知： 找不到硬盘。&lt;/p&gt;
&lt;p&gt;但是在开机自检的时候是能看到硬盘的，更何况，现在服务器上的Centos还能正常跑呢。&lt;/p&gt;
&lt;p&gt;所以，想到了驱动的情况，服务器一般都是SCSI的硬盘，再安装系统的时候需要提供SCSI硬盘驱动。就是蓝色界面第一个还是第二个提示的按F6那个。&lt;/p&gt;
&lt;p&gt;我第一想到的办法就是去借一个带SCSI驱动的软盘，可我一看服务器，居然都没有软驱。。。&lt;/p&gt;</description></item><item><title>Mono for Android发布,C#也可开发Android</title><link>https://fukun.org/archives/0407860.html</link><pubDate>Thu, 07 Apr 2011 11:11:38 +0800</pubDate><guid>https://fukun.org/archives/0407860.html</guid><description>&lt;p&gt;Novell宣布发布Mono for Android，让C#程序员能为 Android开发应用程序。Novell在2009年曾在苹果iOS平台上推出了类似的工具MonoTouch。Mono是.NET的开源实现，Novell开发者平台主管、Mono创始人Miguel de Icaza在声明中表示，Mono for Android为独立开发者和企业提供了一种工具，可以在多个平台上共享代码，增加效率，重用他们的C#和.NET特长&lt;/p&gt;
&lt;p&gt;Mono for Android enables developers to use Microsoft™ Visual Studio™ to create C# and .NET based applications that run on Android phones and tablets. Developers can use their existing skills and reuse code and libraries that have been built with .NET, while taking advantage of native Android APIs.&lt;/p&gt;</description></item><item><title>Android基础 : Android Service</title><link>https://fukun.org/archives/0406858.html</link><pubDate>Wed, 06 Apr 2011 14:57:43 +0800</pubDate><guid>https://fukun.org/archives/0406858.html</guid><description>&lt;p&gt;很多情况下，一些与用户很少需要产生交互的应用程序，我们一般让它们在后台运行就行了，而且在它们运行期间我们仍然能运行其他的应用。&lt;/p&gt;
&lt;p&gt;为了处理这种后台进程，Android引入了Service的概念。Service在Android中是一种长生命周期的组件，它不实现任何用户界面。最常见的例子如：媒体播放器程序，它可以在转到后台运行的时候仍然能保持播放歌曲；或者如文件下载程序，它可以在后台执行文件的下载。&lt;/p&gt;
&lt;p&gt;让我们来看下如何创建Service：&lt;/p&gt;
&lt;p&gt;创建一个Service&lt;/p&gt;</description></item><item><title>JavaEye 被迫改名 ITEye</title><link>https://fukun.org/archives/0405855.html</link><pubDate>Tue, 05 Apr 2011 14:28:20 +0800</pubDate><guid>https://fukun.org/archives/0405855.html</guid><description>&lt;p&gt;4月1日，国内著名的技术社区JavaEye被迫改名一事引起了技术社区中不小的风波，大家对此事众说纷纭。IBM高级工程师、开源爱好者俞黎敏就此事撰写了文章，表明了自己的看法。全文如下：&lt;/p&gt;</description></item><item><title>nba2k11 游戏闪一下 跳出 回到桌面 的解决办法</title><link>https://fukun.org/archives/0404852.html</link><pubDate>Mon, 04 Apr 2011 01:31:57 +0800</pubDate><guid>https://fukun.org/archives/0404852.html</guid><description>&lt;p&gt;记得自己以前就下载下来过2k11，后来貌似不知道什么原因删掉了，好像也是因为游戏跳出，进不去吧。&lt;/p&gt;
&lt;p&gt;昨天晚上玩2k10突然兴起，想买个手柄玩玩，然后就搜了一些关于手柄的知识，推荐最多的就是xbox360手柄和北通神鹰，360手柄推荐的人很多，国产的在淘宝上100以内拿下，北通神鹰在京东上69可以买到。然后就是关于手柄震动的知识，NBA 2K11支持手柄震动，前作是不支持的，所以就花了一个晚上，6个小时的时间，把2K11下载下来了。是在游民星空下的，可以给大家个链接：&lt;/p&gt;</description></item><item><title>Android开发——发送短信程序 sms</title><link>https://fukun.org/archives/0404841.html</link><pubDate>Sun, 03 Apr 2011 16:18:37 +0800</pubDate><guid>https://fukun.org/archives/0404841.html</guid><description>&lt;div id="attachment_842" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/04/android-sms-app-20110403.jpg"&gt;&lt;img class="size-large wp-image-842 " title="android-sms-app-20110403" src="//fukun.org/wp-content/uploads/2011/04/android-sms-app-20110403-600x427.jpg" alt="Android-开发-模拟器-发送短信-程序" width="600" height="427" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Android-开发-模拟器-发送短信-程序
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Unix系统的安全策略之常用命令解析</title><link>https://fukun.org/archives/0403838.html</link><pubDate>Sun, 03 Apr 2011 02:04:12 +0800</pubDate><guid>https://fukun.org/archives/0403838.html</guid><description>&lt;p&gt;本文主要向大家介绍Unix系统的安全策略的一些常用命令。主要包括umask、cp、mv、cpio 和 crypt命令。&lt;/p&gt;
&lt;h2 id="umask命令"&gt;umask命令&lt;/h2&gt;
&lt;p&gt;umask设置用户文件和目录的缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予某种存取许可。&lt;/p&gt;</description></item><item><title>MySQL.com网站被黑 黑客利用SQL盲注攻击破解</title><link>https://fukun.org/archives/0402836.html</link><pubDate>Sat, 02 Apr 2011 12:35:28 +0800</pubDate><guid>https://fukun.org/archives/0402836.html</guid><description>&lt;p&gt;名为TinKode和Ne0h的两名黑客已成功获得MySQL.com网站上的敏感信息，MySQL.com是流行的开源数据库网站。&lt;/p&gt;
&lt;p&gt;黑客使用了SQL盲注攻击侵入网站，并泄露了全披露邮件列表（The Full Disclosure Mailing List）上的违规细节。&lt;/p&gt;
&lt;p&gt;于2009年收购了Sun Microsystems，最近又新收购了MySQL的数据库部门的甲骨文公司，尚未承认这些违规行为。在网站上，SQL注入攻击利用网站漏洞是很常见的。这些漏洞可以让攻击者在数据库内执行查询等一些请求操作。如果数据库返回一个错误，精明的黑客利用这些信息就可以获得更广泛的访问，访问到包含基本数据的服务器。&lt;/p&gt;</description></item><item><title>愚人节专题</title><link>https://fukun.org/archives/0401830.html</link><pubDate>Fri, 01 Apr 2011 12:24:58 +0800</pubDate><guid>https://fukun.org/archives/0401830.html</guid><description>&lt;p&gt;今天早晨有同学在群里发了一个整人的网站，感觉很有意思。&lt;/p&gt;
&lt;p&gt;就拿来改了改，放在自己的站上了。&lt;/p&gt;
&lt;p&gt;看来受害的人的确是不少啊，到现在（20：15），这个页面已经被浏览3000多次了。哈哈~~~~&lt;/p&gt;
&lt;p&gt;其实这本来可以成为一个商机的，能赶上一个节日把很多的用户抓到这个页面上来，只要再在上面再多用点心，放一些其它可以让人们感兴趣的东西，比如放一个类似微博的东西，让每个人都写下一个自己以前碰到的最糗的事，就可以再很大程度上增强网站的知名度了。&lt;/p&gt;
&lt;p&gt;我只是在这个页面上加了一个我网站主页的链接，也因此主页得到了300+的PV。很不错了。&lt;/p&gt;
&lt;p&gt;如果你也想体验体验的话，点击这里把~~~嘿嘿 。   &lt;a href="http://digdeeply.org/news.html" target="_blank"&gt;&lt;a href="http://digdeeply.org/news.html"&gt;http://digdeeply.org/news.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;也可以修饰一下，把下面的话发给你的朋友们去吧~~&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;大陆版yan照门事件曝光，众多一线女星yan照被曝光（范某某、刘某某…）要看就快，被河蟹就没得看了！&lt;/p&gt;
&lt;p&gt;&lt;a href="../news.html" target="_blank"&gt;&lt;a href="http://digdeeply.org/news.html"&gt;http://digdeeply.org/news.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>百度布局电子商务受挫 有啊购物平台关闭</title><link>https://fukun.org/archives/0331827.html</link><pubDate>Thu, 31 Mar 2011 14:57:29 +0800</pubDate><guid>https://fukun.org/archives/0331827.html</guid><description>&lt;p&gt;百度有啊今天发布业务调整公告，宣布即日起将开始对百度有啊业务进行调整，在公告发布之日起1个月内有啊购物平台的商品、店铺、交易相关功能将予以关闭。这也表明，运行不到3年的百度有啊将正式关闭，百度布局电子商务受挫。&lt;/p&gt;</description></item><item><title>Google正式推出Android应用内支付</title><link>https://fukun.org/archives/0330822.html</link><pubDate>Wed, 30 Mar 2011 06:28:19 +0800</pubDate><guid>https://fukun.org/archives/0330822.html</guid><description>&lt;p&gt;之前有消息称Google正在测试Android应用内支付，并预计于本周推出。据国外媒体报道，Google今天已经正式推出了Android应用内付费。&lt;/p&gt;
&lt;p&gt;据悉，目前像《Tap Tap Revenge》,《 Comics》, 《Gun Bros》，《Dungeon Defenders: FW Deluxe 》等软件内已经开始接受消费者使用信用卡进行软件内支付，和iOS中的应用内支付方式类似，而开发者也已经可以在软件中加入此功能。&lt;/p&gt;
&lt;p&gt;推出Android应用内付费，不仅可以让用户直接在软件内购买虚拟道具和升级软件，增强开发者对Google官方软件市场的忠诚度，而且Google也能从中获取更多应用收入。&lt;/p&gt;
&lt;div id="attachment_823" style="width: 510px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/google-android-app-in-paid.jpg"&gt;&lt;img class="size-full wp-image-823 " title="google-android-app-in-paid" src="//fukun.org/wp-content/uploads/2011/03/google-android-app-in-paid.jpg" alt="Google正式推出Android应用内支付" width="500" height="314" srcset="//fukun.org/wp-content/uploads/2011/03/google-android-app-in-paid.jpg 500w, //fukun.org/wp-content/uploads/2011/03/google-android-app-in-paid-300x188.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Google正式推出Android应用内支付
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>中移动或将飞信业务收回集团,技术支持仍由神州泰岳负责</title><link>https://fukun.org/archives/0330819.html</link><pubDate>Wed, 30 Mar 2011 01:16:37 +0800</pubDate><guid>https://fukun.org/archives/0330819.html</guid><description>&lt;!--/keyword--&gt;据新京报报道，中国移动正在对其控股公司卓望控股进行重组，卓望控股的四家分公司将被合并为一家，而一直由卓望负责的飞信业务也可能在重组后被收回，由中国移动数据部直接管理。
&lt;p&gt;　　据了解，卓望控股是由中国移动（香港）有限公司发起并投资成立的子公司，中国移动拥有其60%股权，其他股东包括沃达丰、美林、HP等。&lt;/p&gt;
&lt;p&gt;　　卓望内部人士透露，根据中国移动的重组方案，卓望控股公司已被注销，除卓望信息外的其他三家子公司也将注销。&lt;/p&gt;</description></item><item><title>世界真奇妙……</title><link>https://fukun.org/archives/0329817.html</link><pubDate>Tue, 29 Mar 2011 15:34:55 +0800</pubDate><guid>https://fukun.org/archives/0329817.html</guid><description>&lt;p&gt;继我昨天手机被偷之后，今天真是见识到了好多不同寻常的事情啊。&lt;/p&gt;
&lt;p&gt;上午去公主坟补卡，9点到了城乡楼下边，被告知9点半才开门，就在楼下等了。&lt;/p&gt;
&lt;p&gt;这时候来了一老爷爷，也不算太老，头发有些花白而已，健壮肥硕的身躯，单薄破烂的衣衫，左手拿一本《中国XX》杂志，置于胸前，封面是涛哥；右手放在头右侧，做敬礼状；面向城乡大楼，开始了激情飞扬的演讲，这老爷爷的渊博的知识令我咋舌，从毛泽东爷爷开始，一点一点的讲过来，甚至谈到了汶川地震，如今的物价。&lt;/p&gt;</description></item><item><title>悲剧，小5被偷了。。</title><link>https://fukun.org/archives/0328814.html</link><pubDate>Mon, 28 Mar 2011 15:53:28 +0800</pubDate><guid>https://fukun.org/archives/0328814.html</guid><description>&lt;p&gt;真是TMD悲剧啊，在公交车站等公交的时候打了一个电话，看见车来了就赶紧挂了电话，把手机放在上衣兜里了。然后去挤公交，上车的时候眼光撇到左边一个人飞快的跑过来往我边上使劲挤，我以为他要上去抢座，也没注意他。&lt;/p&gt;
&lt;p&gt;等我坐到车上后，过了两分钟，发现手机居然TMD没了。&lt;/p&gt;
&lt;p&gt;然后赶紧借售票员的手机打电话，已经是无法接通了，MD，被扣电池了。。。售票员也无奈的给我说，”别找了，丢了就找不着了，我上个月也刚丢了一个。。妈的，要逮着这小偷了，非得把他的手剁了不可。。”&lt;/p&gt;</description></item><item><title>百度市值超腾讯成中国互联网企业第一</title><link>https://fukun.org/archives/0327812.html</link><pubDate>Sun, 27 Mar 2011 15:58:37 +0800</pubDate><guid>https://fukun.org/archives/0327812.html</guid><description>&lt;div id="article"&gt;
 &lt;p&gt;
 3月24日凌晨消息，百度(Nasdaq:BIDU)市值今早收盘报460.72亿美元，超过腾讯(00700.HK)昨日收盘时的约445亿美元。五年来，中国互联网企业市值第一的头衔首次易主。2005年百度IPO时市值仅8.7亿美元，迄今增长近53倍。
 &lt;/p&gt;
 &lt;p&gt;
 刚刚收盘的中国概念股今日多数上涨，但其中有一只股票无法不引人关注。
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>Windows Phone 7 技术沙龙一游</title><link>https://fukun.org/archives/0326808.html</link><pubDate>Sat, 26 Mar 2011 15:39:54 +0800</pubDate><guid>https://fukun.org/archives/0326808.html</guid><description>&lt;p&gt;今天去参加了个Windows Phone 7的技术沙龙，地点居然在望京，，，微软大厦。。&lt;/p&gt;
&lt;p&gt;坐了两个多小时的车跑到那边，赶在开始之前到达了，周围环境真的很不错，可能因为是快郊区了吧，人很少，车也很少。微软大厦里面也很不错，很轻松很自由的样子。&lt;/p&gt;
&lt;div id="attachment_809" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/microsoft-windows-phone-7-develop.jpg"&gt;&lt;img class="size-full wp-image-809 " title="microsoft-windows-phone-7-develop" src="//fukun.org/wp-content/uploads/2011/03/microsoft-windows-phone-7-develop.jpg" alt="微软大厦三层办公环境" width="600" height="393" srcset="//fukun.org/wp-content/uploads/2011/03/microsoft-windows-phone-7-develop.jpg 600w, //fukun.org/wp-content/uploads/2011/03/microsoft-windows-phone-7-develop-300x197.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 微软大厦三层办公环境
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>谷歌暂停开源Android3.0 合作只限于大厂商</title><link>https://fukun.org/archives/0325803.html</link><pubDate>Fri, 25 Mar 2011 12:04:43 +0800</pubDate><guid>https://fukun.org/archives/0325803.html</guid><description>&lt;p&gt;据国外媒体报道，谷歌周四表示，将暂时阻止小型手机生产商使用其Android 3.0“Honeycomb”系统，期限未定。&lt;/p&gt;
&lt;p&gt;谷歌一位发言人通过电子邮件声明称，Honeycomb是专为平板电脑而非手机设计的，在该系统以开源形式发布前，还有很多工作要做。谷歌向《商业周刊》表示，推迟发布可能达数月之久。&lt;/p&gt;
&lt;p&gt;谷歌称：“代号为Honeycomb的Android 3.0系统，是针对大屏幕设备和改进小软件、多任务、浏览、通知和客户化等功能而设计。虽然我们很高兴为平板电脑提供这些新功能，但交付给其他设备包括手机前我们有更多的工作要做。我们 决定暂不开放源代码。我们致力于将Android作为跨多设备类型的开放式平台来提供，并在准备好时公布源代码”。&lt;/p&gt;</description></item><item><title>Excel 怎样使标题不动而内容滚动,固定行不动，其它行可以滚动</title><link>https://fukun.org/archives/0324794.html</link><pubDate>Thu, 24 Mar 2011 07:38:30 +0800</pubDate><guid>https://fukun.org/archives/0324794.html</guid><description>&lt;p&gt;Excel 怎样使标题不动而内容滚动,固定行不动，其它行可以滚动?&lt;/p&gt;
&lt;p id="question-title"&gt;
 在excel中做的表格怎样在使用滚动条时标题行不动，只有下面的数据在滚动?
&lt;/p&gt;
&lt;p&gt;如何使excel滚动条动，内容不动?&lt;/p&gt;
&lt;p&gt;excel怎么设置前两列不不动，后面列可以随滚动条左右移动?&lt;/p&gt;
&lt;p&gt;Excel中在拉动竖的滚动条时，想要固定的某几行不动，应该怎么做？&lt;/p&gt;
&lt;p&gt;浏览Excel时如何固定前面N行不动？&lt;/p&gt;</description></item><item><title>又一天</title><link>https://fukun.org/archives/0323791.html</link><pubDate>Wed, 23 Mar 2011 14:56:49 +0800</pubDate><guid>https://fukun.org/archives/0323791.html</guid><description>&lt;p&gt;又是累死累活的一天，一天闲暇时间都没有，。&lt;/p&gt;
&lt;p&gt;还有各种会议，以前是希望多开会，这样就可以偷懒不用干活，现在是开会耽误时间，得从会上逃出来偷偷干活啊。。&lt;/p&gt;
&lt;p&gt;whatever~&lt;/p&gt;
&lt;p&gt;sometimes I win , sometimes I lose , It doesn’t matter .&lt;/p&gt;</description></item><item><title>谷歌将更改Chrome图标 更为简洁形似龙卷风</title><link>https://fukun.org/archives/0322786.html</link><pubDate>Tue, 22 Mar 2011 14:39:24 +0800</pubDate><guid>https://fukun.org/archives/0322786.html</guid><description>&lt;p&gt;据国外某媒体报道，科技博客Techcrunch作者MG·斯格勒（MG Siegler）周一撰文称，在过去的几周当中，使用谷歌Chromium（开发谷歌Chrome浏览器的开源软件）的用户应当已经发现，这一浏览器的图标变得更加简洁干净。Chrome之前的图标看上去更像桌面游戏Simon。目前只有Chrome的开发者会看到这一变化，但不久之后新的图标将替代原有的Chrome图标。&lt;/p&gt;
&lt;div id="attachment_787" style="width: 560px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/google-chorm-icon-change.jpg"&gt;&lt;img class="size-full wp-image-787 " title="google-chorm-icon-change" src="//fukun.org/wp-content/uploads/2011/03/google-chorm-icon-change.jpg" alt="谷歌将更改Chrome图标简洁形似龙卷风 " width="550" height="272" srcset="//fukun.org/wp-content/uploads/2011/03/google-chorm-icon-change.jpg 550w, //fukun.org/wp-content/uploads/2011/03/google-chorm-icon-change-300x148.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 谷歌将更改Chrome图标简洁形似龙卷风
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>累累累…… 工作好多。。</title><link>https://fukun.org/archives/0321784.html</link><pubDate>Mon, 21 Mar 2011 15:37:02 +0800</pubDate><guid>https://fukun.org/archives/0321784.html</guid><description>&lt;p&gt;累累累……  工作好多。。&lt;/p&gt;
&lt;p&gt;总是有干不完的活。。。。不过，还是比无所事事要好的多，最起码能感觉自己还是有用处的。&lt;/p&gt;</description></item><item><title>中国气象局开放日参观</title><link>https://fukun.org/archives/0320782.html</link><pubDate>Sun, 20 Mar 2011 12:37:12 +0800</pubDate><guid>https://fukun.org/archives/0320782.html</guid><description>&lt;p&gt;今天正好赶上中国气象局开放日，进去玩了一圈，比较有意思。还见到了很多天气预报的节目主持人，拿到了他们亲笔签名的画册，可惜我不感冒~~~~&lt;/p&gt;
&lt;p&gt;有很多问卷，答完就可以拿小礼品，哈哈，抢了不少~~&lt;/p&gt;</description></item><item><title>石景山游乐园一日游……</title><link>https://fukun.org/archives/0319776.html</link><pubDate>Sat, 19 Mar 2011 15:59:17 +0800</pubDate><guid>https://fukun.org/archives/0319776.html</guid><description>&lt;p&gt;中午在游乐园西门口的烙饼卷带鱼吃的，在这个盐价飙升的年代，吃条咸带鱼真的很值啊，哈哈。。而且味道也确实很不错。&lt;/p&gt;
&lt;p&gt;再就是在游乐园里玩了。。。&lt;/p&gt;
&lt;div id="attachment_777" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/sjsyly20110320.jpg"&gt;&lt;img class="size-large wp-image-777 " title="sjsyly20110320" src="//fukun.org/wp-content/uploads/2011/03/sjsyly20110320-600x450.jpg" alt="石景山游乐园-大摩天轮-观景" width="600" height="450" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 石景山游乐园-大摩天轮-观景
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>上班族必读 公司监控小白领工作的7大狠招 公司监控员工都用那些招？</title><link>https://fukun.org/archives/0318774.html</link><pubDate>Fri, 18 Mar 2011 15:39:21 +0800</pubDate><guid>https://fukun.org/archives/0318774.html</guid><description>&lt;p&gt;&lt;span style="font-size: small;"&gt;刚刚走到尾声的这个夏天并不平静。先有&lt;span&gt;可口可乐&lt;/span&gt;&lt;span&gt;美国公司的三个“内鬼”试图把可口可乐的配方卖给&lt;/span&gt;&lt;span&gt;百事&lt;/span&gt;&lt;span&gt;可乐，又有一些公司开始明确要求员工用公司邮箱登录MSN，据说“这样更有利于防止商业机密外泄”。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: black;"&gt;而在某500强公司技术部主管马先生看来，为了防止泄露机密或影响工作，大家在公司发信、用MSN聊天甚至偷偷打个私人电话，都有可能被公司监控到，“不过公司不会专门派人来实时监控，只是保证留下证据，需要时能查清一切事情。”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: black;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;
&lt;span style="color: black;"&gt;</description></item><item><title>当当4月1日起将停百度广告投放</title><link>https://fukun.org/archives/0317772.html</link><pubDate>Thu, 17 Mar 2011 13:08:43 +0800</pubDate><guid>https://fukun.org/archives/0317772.html</guid><description>&lt;p&gt;3月17日消息，上市后高调异常的当当网CEO李国庆今日再在其腾讯微博上爆出猛料，称当当网将从4月1日起停止百度广告投放，并豪言愿意资助相关机构起诉百度。&lt;/p&gt;
&lt;p&gt;百度除接连数月被盛大文学CEO侯小强炮轰外，近日陷入口水中。3•15维权日，包括韩寒在内的50名国内作家联合署名发表《三一五讨百度书》，作家们严词声讨百度文库，并声称将凑钱起诉百度；3月16日，中国音像协会唱片工作委员会发布致百度的公开信，公开信中强烈抗议了百度在音乐领域的侵权行为。&lt;/p&gt;</description></item><item><title>突如其来的想法—微博应用</title><link>https://fukun.org/archives/0316769.html</link><pubDate>Wed, 16 Mar 2011 14:51:17 +0800</pubDate><guid>https://fukun.org/archives/0316769.html</guid><description>&lt;p&gt;突然有了个自认为不错的IDEA，准备开发一个微博应用~~~&lt;/p&gt;
&lt;p&gt;总算能在无聊的闲暇时间找点事干了~~~&lt;/p&gt;
&lt;p&gt;不过估计要下周开始才能动手了，这周有两个朋友要来北京玩，好好接待一下~~~&lt;/p&gt;</description></item><item><title>广告的印象数、点击数与浏览器/代理服务器高速缓存的关系</title><link>https://fukun.org/archives/0315767.html</link><pubDate>Tue, 15 Mar 2011 02:05:07 +0800</pubDate><guid>https://fukun.org/archives/0315767.html</guid><description>&lt;h2 id="浏览器代理服务器高速缓存"&gt;浏览器/代理服务器高速缓存&lt;/h2&gt;
&lt;p&gt;为了迅速提高用户的 Web 体验，大多数浏览器采用了一项名为缓存的技术。缓存允许将网页、图像等内容保存在用户计算机上。如果用户调用先前请求过的网页，浏览器无需再次向网站本身发出请求，就可从缓存中重新调用此网页的信息，从而实现快速访问。&lt;/p&gt;</description></item><item><title>日本不会面临另一场切尔诺贝利灾难</title><link>https://fukun.org/archives/0315765.html</link><pubDate>Tue, 15 Mar 2011 01:33:42 +0800</pubDate><guid>https://fukun.org/archives/0315765.html</guid><description>&lt;p&gt;在日本福岛第一核电站发生爆炸事故后，媒体的焦点迅速从地震海啸灾难转移到放射性危机上。反核人士立即警告另一场切尔诺贝利灾难即将爆发，并预言其它地方的核电站可能面临同样问题。在了解到核电站的运行原理后，你应该不会再感到恐慌。&lt;/p&gt;</description></item><item><title>新浪微博应用开发小案例</title><link>https://fukun.org/archives/0314753.html</link><pubDate>Mon, 14 Mar 2011 10:25:40 +0800</pubDate><guid>https://fukun.org/archives/0314753.html</guid><description>&lt;p&gt;这是一个用JS开发的小应用，目的是获取指定ID的微博账户的前N条（N不大于20）微博。&lt;/p&gt;
&lt;p&gt;不是什么有内涵的东西，纯粹作为一个简单的小应用而已。&lt;/p&gt;
&lt;p&gt;首先是要根据官方指定的，引入一个JS脚本。&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;&amp;lt;script type="text/javascript" src="http://js.wcdn.cn/t3/platform/js/api/wb.js" charset="utf-8" &amp;gt;&amp;lt;/script&amp;gt;

&lt;/pre&gt;</description></item><item><title>3070芯片和8187L芯片的对比</title><link>https://fukun.org/archives/0313747.html</link><pubDate>Sun, 13 Mar 2011 14:00:34 +0800</pubDate><guid>https://fukun.org/archives/0313747.html</guid><description>&lt;p&gt;目前市场上出现了3070芯片，号称优点不少，那么，它和8187L对比，各有什么优点呢。&lt;/p&gt;
&lt;p&gt;3070芯片和8187L芯片，如果是要用在蹭网卡上,还是RTL8187L的芯片更好.&lt;/p&gt;
&lt;p&gt;1)RTL8187L的芯片对破解软件的兼容性几乎达到完美地步,雷凌3070芯片对破解软件的兼容性略差一点点.不过也不错.兼容性好意味破解成功率更高。&lt;/p&gt;</description></item><item><title>日本宫城县警方称地震遇难人数可能超过1万人</title><link>https://fukun.org/archives/0313742.html</link><pubDate>Sun, 13 Mar 2011 10:32:22 +0800</pubDate><guid>https://fukun.org/archives/0313742.html</guid><description>&lt;div id="attachment_743" style="width: 460px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/japan-earthquake-f2-battleplane.jpg"&gt;&lt;img class="size-full wp-image-743 " title="japan-earthquake-f2-battleplane" src="//fukun.org/wp-content/uploads/2011/03/japan-earthquake-f2-battleplane.jpg" alt="日本地震-航空基地受损-F-2战机" width="450" height="284" srcset="//fukun.org/wp-content/uploads/2011/03/japan-earthquake-f2-battleplane.jpg 450w, //fukun.org/wp-content/uploads/2011/03/japan-earthquake-f2-battleplane-300x189.jpg 300w" sizes="(max-width: 450px) 100vw, 450px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 日本地震-航空基地受损-F-2战机
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;航空自卫队位于宫城县的一个航空基地，在遭受海啸袭击后，28架战斗机全部进水，部分战斗机被冲撞到机库的墙壁上，受损十分严重，携带的导弹也丢落海啸中。图为F-2战机。&lt;/p&gt;
&lt;p&gt;人民网3月13日讯 据日本媒体报道，宫城县警察厅竹内直人本部长下午在县灾害对策本部称，此次地震和海啸造成的宫城县死亡人数肯定会过万。目前该县警方确定的尸体数为379。&lt;/p&gt;</description></item><item><title>OK，我做了一个伟大的决定</title><link>https://fukun.org/archives/0312738.html</link><pubDate>Sat, 12 Mar 2011 11:17:03 +0800</pubDate><guid>https://fukun.org/archives/0312738.html</guid><description>&lt;p&gt;我决定，以后5年内的发展方向：&lt;/p&gt;
&lt;p&gt;PHP为主，安全方向为辅。&lt;/p&gt;
&lt;p&gt;当然，还要希望地球能撑的到那天。&lt;/p&gt;</description></item><item><title>姚明亲口证实未来铁定续约火箭 延续忠诚甘愿降薪留守</title><link>https://fukun.org/archives/0312735.html</link><pubDate>Sat, 12 Mar 2011 01:06:22 +0800</pubDate><guid>https://fukun.org/archives/0312735.html</guid><description>&lt;p&gt;在一年一度的休斯敦火箭慈善晚宴活动中，姚明终于千呼万唤始出来，携妻子叶莉参加了这一活动，而更为令中国球迷振奋的是，姚明在接受当地记者采访的时候还亲口证实，希望能在下赛季复出，同时还表示希望继续留在火箭。对于姚明来说，只要身体恢复健康，重出江湖不存在任何疑问。而他职业生涯的下一站，依旧将会是火箭，只因姚明的忠诚，让他选择继续留守休斯敦。&lt;/p&gt;</description></item><item><title>2011年地震</title><link>https://fukun.org/archives/0311731.html</link><pubDate>Fri, 11 Mar 2011 09:32:22 +0800</pubDate><guid>https://fukun.org/archives/0311731.html</guid><description>&lt;p&gt;2011年2月22号，新西兰发生的6.3级地震，基督城变成一片废墟；&lt;/p&gt;
&lt;p&gt;2011年3月10日12时58分在云南盈江发生5.8级地震，造成房屋倒损以及 人员伤亡；&lt;/p&gt;
&lt;p&gt;2011年3月11日北京时间13时46分日本本州岛东海岸附近发生的地震震级为8.9级，地震引发海啸已致重大伤亡。&lt;/p&gt;</description></item><item><title>谷歌 Android 开源变闭源 ？是真是假？</title><link>https://fukun.org/archives/0310725.html</link><pubDate>Thu, 10 Mar 2011 03:40:00 +0800</pubDate><guid>https://fukun.org/archives/0310725.html</guid><description>&lt;p&gt;今天，3月10日，微博上有网友爆出消息称：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;@abudie:  劲爆：谷歌3月初突然终于收网，占有率达29%的Android 开源变闭源。Android 3.0只给授权用户，协议条款包括OEM放弃修改API, 放弃建设软件商店等。海外九大OEM被迫签订协议，国内尚未有OEM获得授权。基于Android之上的某运营商O操作系统、某OEM乐X即将全面陷于困境。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;至于消息的真实性，有待核实。&lt;/p&gt;</description></item><item><title>福布斯发2011年富豪榜：李彦宏成国内新首富</title><link>https://fukun.org/archives/0310723.html</link><pubDate>Thu, 10 Mar 2011 01:36:04 +0800</pubDate><guid>https://fukun.org/archives/0310723.html</guid><description>&lt;p&gt;据国外某媒体报道，《福布斯》3月10日公布了2011年度全球亿万富翁排行榜。今年上榜人数创下历史新记录，达到1210位。其中墨西哥电信大亨卡洛斯-史利姆·赫鲁及其家族以740亿美元高居榜首。&lt;/p&gt;
&lt;p&gt;特别值得注意的是，社交网站Facebook今年有6人上榜。其中CEO马克·扎克伯格从去年的第212位上升到第52位，他的财富估计达到135亿美元。另外，该公司联合创始人、今年26岁的达斯汀·莫斯科维茨（Dustin Moskovitz）成为今年排行榜上最年轻的亿万富翁。&lt;/p&gt;</description></item><item><title>暴雪称《Titan》已可试玩 将超越魔兽世界</title><link>https://fukun.org/archives/0309720.html</link><pubDate>Wed, 09 Mar 2011 01:38:32 +0800</pubDate><guid>https://fukun.org/archives/0309720.html</guid><description>&lt;p&gt;3月9日消息，《泰坦(Titan)》是暴雪正在秘密开发的新网游，除了这个名字之外，大家对其还一无所知。然而，&lt;strong&gt;美国时间3月8日，暴雪首席运营官Paul Sams在接受外媒采访时却透露，这款作品已经可以玩了！&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>好吧，该忘的忘了吧。</title><link>https://fukun.org/archives/0308713.html</link><pubDate>Tue, 08 Mar 2011 07:28:57 +0800</pubDate><guid>https://fukun.org/archives/0308713.html</guid><description>&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2011/03/QQ-doudizhu-hyy.jpg"&gt;&lt;img class="aligncenter size-full wp-image-714" title="QQ-doudizhu-hyy" src="//fukun.org/wp-content/uploads/2011/03/QQ-doudizhu-hyy.jpg" alt="" width="265" height="40" /&gt;&lt;/a&gt;某人还是那么喜欢斗地主。&lt;/p&gt;</description></item><item><title>Somebody Online</title><link>https://fukun.org/archives/0307709.html</link><pubDate>Mon, 07 Mar 2011 04:28:09 +0800</pubDate><guid>https://fukun.org/archives/0307709.html</guid><description>&lt;p&gt;每天没事的时候就偶尔登陆一下那个很久很久之前打埋伏的小号，一直也没见它有什么动静，等级总是两个太阳，没有变过，也总是不在线。&lt;/p&gt;
&lt;p&gt;昨天奇怪的发现它的个性签名变了，今天，它居然在线……&lt;/p&gt;
&lt;p&gt;。。哎，悲催的人生。&lt;/p&gt;</description></item><item><title>华三 交换机 S3100 web页登陆设置</title><link>https://fukun.org/archives/0307705.html</link><pubDate>Mon, 07 Mar 2011 02:50:41 +0800</pubDate><guid>https://fukun.org/archives/0307705.html</guid><description>&lt;p&gt;首先要通过console口设置访问IP，如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;H3C&gt;sys&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[H3C] interface Vlan-interface 1（进入管理VLAN）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[H3C-Vlan-interface1] undo ip address（取消管理VLAN原有的IP地址）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[H3C-Vlan-interface1] ip address 119.254.7.100 255.255.255.240（配置以太网交换机管理VLAN的IP地址为119.254.7.100,对应的掩码自己写好）&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>今天</title><link>https://fukun.org/archives/0306702.html</link><pubDate>Sun, 06 Mar 2011 08:42:12 +0800</pubDate><guid>https://fukun.org/archives/0306702.html</guid><description>&lt;p&gt;今天，上午洗衣服……&lt;/p&gt;
&lt;p&gt;下午去附近的菜市场买了点菜，割了点肉……一共花了28，再加上冰箱里还有些剩下的菜，想必够我吃两个星期的了。。。&lt;/p&gt;</description></item><item><title>放松one day</title><link>https://fukun.org/archives/0305698.html</link><pubDate>Sat, 05 Mar 2011 14:08:29 +0800</pubDate><guid>https://fukun.org/archives/0305698.html</guid><description>&lt;p&gt;今天跑去回龙观放松了一下，在游泳池泡了两个小时的澡，30的门票，还好，不算贵。里面的设施还是比较齐全的，有健身器械和桑拿，在池子里扑腾了半天,还是一点没学会,甚至连重心也不稳,脚一离地,还是扑腾半天,喝两口水。&lt;/p&gt;
&lt;p&gt;最大的收获就是敢在水下睁眼睛了,以前一直觉得水下怎么可能整的开眼呢,今天试了试,还是可以的哈,就是看的一片模糊,不过还挺好玩的,哈哈。&lt;/p&gt;
&lt;p&gt;记不清楚这是第几次下游泳池了，不过从上大学之后算起，这应该是第二次吧。&lt;/p&gt;
&lt;p&gt;想想第一次，跟现在，………………………………&lt;/p&gt;
&lt;p&gt;唉。&lt;/p&gt;</description></item><item><title>iPad2完美么？苹果iPad 2的十大亮点与5大遗憾</title><link>https://fukun.org/archives/0304694.html</link><pubDate>Fri, 04 Mar 2011 02:01:20 +0800</pubDate><guid>https://fukun.org/archives/0304694.html</guid><description>&lt;div id="attachment_695" style="width: 460px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/ipad2-10-5.jpg"&gt;&lt;img class="size-full wp-image-695" title="ipad2-10-5" src="//fukun.org/wp-content/uploads/2011/03/ipad2-10-5.jpg" alt="苹果iPad 2的十大亮点与5大遗憾" width="450" height="266" srcset="//fukun.org/wp-content/uploads/2011/03/ipad2-10-5.jpg 450w, //fukun.org/wp-content/uploads/2011/03/ipad2-10-5-300x177.jpg 300w" sizes="(max-width: 450px) 100vw, 450px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 苹果iPad 2的十大亮点与5大遗憾
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>PHP array_slice() 函数 用法</title><link>https://fukun.org/archives/0303691.html</link><pubDate>Thu, 03 Mar 2011 14:59:10 +0800</pubDate><guid>https://fukun.org/archives/0303691.html</guid><description>&lt;p&gt;array_slice() 函数在数组中根据条件取出一段值，并返回。&lt;/p&gt;
&lt;p&gt;注释：如果数组有字符串键，所返回的数组将保留键名。（参见例子 2）&lt;/p&gt;
&lt;h3 id="语法"&gt;语法&lt;/h3&gt;
&lt;blockquote&gt;
&lt;pre&gt;&lt;strong&gt;array_slice(array,offset[,length,preserve]) &lt;/strong&gt; //从array中提取出从offset处开始的符合条件的数组。&lt;/pre&gt;
&lt;/blockquote&gt;</description></item><item><title>IE9的Activex过滤功能，消除广告不用愁</title><link>https://fukun.org/archives/0302685.html</link><pubDate>Wed, 02 Mar 2011 09:44:57 +0800</pubDate><guid>https://fukun.org/archives/0302685.html</guid><description>&lt;p&gt;IE9 RC版本的Activex过滤功能可以给用户更好的控制和展现体验。在Activex过滤功能的帮助下，用户可以很方便的关闭不需要的Activex插件，而只开启一些必要的Activex控件，如Adobe Flash，或者网银安全控件。&lt;/p&gt;
&lt;p&gt;在这种情况下，用户可以屏蔽很多不必要的广告或者弹窗之类的Activex控件，从而达到净化广告、突出内容的效果。&lt;/p&gt;
&lt;p&gt;以下以新浪为例，很好的展现了Activex过滤功能的强大。&lt;/p&gt;</description></item><item><title>广告系统-概念-网络广告术语缩写</title><link>https://fukun.org/archives/0301681.html</link><pubDate>Tue, 01 Mar 2011 07:24:07 +0800</pubDate><guid>https://fukun.org/archives/0301681.html</guid><description>&lt;h2 id="广告系统-概念-网络广告术语缩写"&gt;广告系统-概念-网络广告术语缩写:&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;PV(访问量)&lt;/strong&gt;：即Page View，即页面浏览量或点击量，用户每次刷新即被计算一次。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UV(独立访客)&lt;/strong&gt;：即Unique Visitor，访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IP(独立IP)&lt;/strong&gt;：指独立IP数。00:00-24:00内相同IP地址只被计算一次。&lt;/p&gt;</description></item><item><title>Google Gmail 重设部份用户账号，数据凭空消失？</title><link>https://fukun.org/archives/0301676.html</link><pubDate>Tue, 01 Mar 2011 01:46:04 +0800</pubDate><guid>https://fukun.org/archives/0301676.html</guid><description>&lt;div id="attachment_677" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/03/fresh-gmail-feb-2011.jpg"&gt;&lt;img class="size-full wp-image-677" title="fresh-gmail-feb-2011" src="//fukun.org/wp-content/uploads/2011/03/fresh-gmail-feb-2011.jpg" alt="Gmail 重设部份用户账号，数据凭空消失？" width="600" height="214" srcset="//fukun.org/wp-content/uploads/2011/03/fresh-gmail-feb-2011.jpg 600w, //fukun.org/wp-content/uploads/2011/03/fresh-gmail-feb-2011-300x107.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Gmail 重设部份用户账号，数据凭空消失？
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>社科院《中国省域经济竞争力发展报告(2009~2010)》称部分省市已富可敌国</title><link>https://fukun.org/archives/0228672.html</link><pubDate>Mon, 28 Feb 2011 13:52:32 +0800</pubDate><guid>https://fukun.org/archives/0228672.html</guid><description>&lt;p&gt;中国社科院今日在京发布《中国省域经济竞争力发展报告(2009~2010)》，据福建省人民政府发展研究中心主任、《中国省域竞争力蓝皮书》主编之一李闽榕教授表示，我国部分省市经济指标排位已进入中游位置，超过部分发达国家。&lt;/p&gt;
&lt;p&gt;李闽榕在发布会上指出，从反映经济总量的GDP来看，中国部分省市经济指标排位已进入中游位置，超过部分发达国家，其中广东、江苏和山东3个省份的GDP均进入前20位，分别排在第14、15和第17位，超过了比利时、波兰、瑞典、奥地利等其他19个经合组织成员国，其他省市的GDP也有超过一些国家，10个省市中GDP总量最少的天津，也超过了斯洛伐克、卢森堡、斯洛文尼亚和冰岛4个国家。当然这4个国家都是小国家，可比性也不是很足。报告显示，从固定资产投资规模来看，各省市的指标更为明显，其排位全部进入前30位，特别是山东和江苏分别位列第19和第10，超过了大部分OECD成员国的投资规模。&lt;/p&gt;</description></item><item><title>阿里巴巴曝诚信通欺诈：为招揽会员不择手段</title><link>https://fukun.org/archives/0227669.html</link><pubDate>Sun, 27 Feb 2011 15:59:34 +0800</pubDate><guid>https://fukun.org/archives/0227669.html</guid><description>&lt;p&gt;&lt;strong&gt;卫哲&lt;/strong&gt;引咎辞职背后，阿里巴巴把平台上欺诈行为归罪到卫哲和100名销售人员身上，但这可能还不是问题的全部。&lt;/p&gt;
&lt;p&gt;《第一财经日报》对更多被欺诈的消费者采访后发现，除了国际市场“出口通版”服务存在客户欺诈，而在中国市场上63万多名诚信通会员中，问题则更多——一方面，为了招募更多诚信通会员获取收入，部分阿里巴巴销售人员竭尽夸大宣传之能事，而这些被认定为诚信通会员的供应商又开始用一种不诚信的态度对待自己的客户，另一方面，阿里巴巴对这些事件的监管有待完善。&lt;/p&gt;</description></item><item><title>传iPad 2因工程问题放弃Retina屏幕和SD卡槽</title><link>https://fukun.org/archives/0226667.html</link><pubDate>Sat, 26 Feb 2011 13:46:37 +0800</pubDate><guid>https://fukun.org/archives/0226667.html</guid><description>&lt;p&gt;据国外某媒体报道，消息人士透露，苹果的第二代iPad平板电脑将不支持Retina高清屏幕，也不具备SD卡插槽。&lt;/p&gt;
&lt;p&gt;科技博客网站Engadget曾是最早报道iPad 2将支持Retina高清屏幕和SD卡插槽的媒体之一。但在本周四，Engadget改变了之前的观点，称受制于工程学问题，苹果被迫在最后时刻对iPad 2做出设计更改，放弃了Retina高清屏幕和SD卡插槽。&lt;/p&gt;</description></item><item><title>命运</title><link>https://fukun.org/archives/0225664.html</link><pubDate>Fri, 25 Feb 2011 14:43:53 +0800</pubDate><guid>https://fukun.org/archives/0225664.html</guid><description>&lt;p&gt;今天下午的时候，老爸突然发短信给我，发给了我十几个电话号码，让我在网上查一下吉凶，他要挑个好号。。&lt;/p&gt;
&lt;p&gt;虽然可能说是太迷信了，不过，反正号也是要挑的，能挑个好的就挑个呗。&lt;/p&gt;
&lt;p&gt;给我老爸查了一遍，十几个号码里，大部分都是 凶。。只有两三个是 吉带凶，甚至都没有一个吉 的。告诉我老爸后，他又找了七八个号码给我发过来，我又查了查，终于有几个是吉的，就告诉我老爸了，让他自己挑去了。&lt;/p&gt;</description></item><item><title>华为发公开信邀请美国当局对其进行四项调查</title><link>https://fukun.org/archives/0225661.html</link><pubDate>Fri, 25 Feb 2011 01:00:38 +0800</pubDate><guid>https://fukun.org/archives/0225661.html</guid><description>&lt;p&gt;2月25日消息，据国外某媒体报道，由于美国政府担心华为进入该国电信设备市场会给其国家安全带来影响，从而对华为在美国市场的发展进行百般阻挠。针对此事，华为副董事长胡厚崑在公司网站上发表公开信，以澄清长期存在的不真实谣言和断言，并邀请美国当局对华为展开正式的调查。&lt;/p&gt;
&lt;p&gt;胡厚崑在信中表示，华为将与“所有的政府机构进行合作”。此公开信旨在向外界澄清公司创始人、首席执行官任正非的历史问题。公开信中表示，任正非于1944年10月25日出生在贵州省，在1987年怀揣人民币2.1万元（按照当前的汇率相当于3000美元）创建华为之前，他此前曾在部队服役过9年。&lt;/p&gt;</description></item><item><title>Jquery selectors 选择器 在线练习</title><link>https://fukun.org/archives/0224657.html</link><pubDate>Thu, 24 Feb 2011 03:03:11 +0800</pubDate><guid>https://fukun.org/archives/0224657.html</guid><description>&lt;h2 id="jquery-selectors-选择器-在线练习"&gt;Jquery selectors 选择器 在线练习:&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt; &lt;a href="http://digdeeply.org/dd_share/jqueryselectors/"&gt;http://digdeeply.org/dd_share/jqueryselectors/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过该Jquery练习可以很好的掌握Jquery的选择器的使用。&lt;/p&gt;
&lt;p&gt;Notice： 在360浏览器下布局会有点乱，建议使用非360浏览器。&lt;/p&gt;</description></item><item><title>javascript-escape；cookie注入的原理；cookie注射批量拿企业站</title><link>https://fukun.org/archives/0223652.html</link><pubDate>Wed, 23 Feb 2011 02:58:00 +0800</pubDate><guid>https://fukun.org/archives/0223652.html</guid><description>&lt;h1 id="javascript-escape-函数"&gt;&lt;span style="color: #3366ff;"&gt;JavaScript escape() 函数&lt;/span&gt;&lt;/h1&gt;
&lt;h2 id="定义和用法"&gt;定义和用法&lt;/h2&gt;
&lt;p&gt;javascript中的escape() 函数可对字符串进行编码，这样就可以在所有的计算机上读取该字符串。&lt;/p&gt;
&lt;h3 id="返回值"&gt;返回值&lt;/h3&gt;
&lt;p&gt;已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。&lt;/p&gt;</description></item><item><title>2011年2月22日 22:22:22，这个世界有点2</title><link>https://fukun.org/archives/0222648.html</link><pubDate>Tue, 22 Feb 2011 11:52:17 +0800</pubDate><guid>https://fukun.org/archives/0222648.html</guid><description>&lt;p&gt;今天，新西兰地震了，安东尼转会尼克斯了，百思买退出中国了，沃尔玛欺诈了，利比亚发生严重内乱了，油价上调了，释小龙与何洁恋上了，最后的流氓还得服刑了，馒头征税也吃不上了，阿里巴巴高层捣乱了，徐静蕾也和成龙传绯闻了…今天2月22号星期2!一切的一切都是那么顺理成章~~&lt;/p&gt;
&lt;p&gt;神马都是浮云~~~~~~~~&lt;/p&gt;</description></item><item><title>0.8%,阿里巴巴CEO卫哲引咎辞职</title><link>https://fukun.org/archives/0221644.html</link><pubDate>Mon, 21 Feb 2011 11:29:40 +0800</pubDate><guid>https://fukun.org/archives/0221644.html</guid><description>&lt;p&gt;2月21日，阿里巴巴B2B公司（1688.HK）宣布，2010年该公司有约0.8%、即1107名“中国供应商”因涉嫌欺诈被终止服务，该公司CEO卫哲、COO李旭晖为此引咎辞职。&lt;/p&gt;
&lt;p&gt;阿里巴巴表示，公司决不能变成一家仅以赚钱为目的的机器，违背公司价值观的行为丝毫不能容忍。&lt;/p&gt;</description></item><item><title>第一次杀生……(怎么去掉鱼腥线)</title><link>https://fukun.org/archives/0220634.html</link><pubDate>Sun, 20 Feb 2011 10:09:39 +0800</pubDate><guid>https://fukun.org/archives/0220634.html</guid><description>&lt;p&gt;昨天出去打算请一个朋友吃饭的，事实上是，我又成了被请的……然后又逛了逛书店，归之~~&lt;/p&gt;
&lt;p&gt;今天也没什么事，就打算请几个朋友到我这来吃饭，打算做个我最拿手的鱼香肉丝~~，然后弄个可乐鸡翅，再烧个鱼汤~~。于是我踏上了艰难的采购之旅，先坐车去了北大地的物美，一直以来都认为那的东西比较便宜，先乱七八糟的买了一些葱姜蒜之类的，然后发现可乐（烧制可乐鸡翅的必备材料之一）是5.7一瓶，我记得前一阵我楼下的华堂超市才4.9一瓶，怎么会这么贵，就先不买了，回头去华堂好了。&lt;/p&gt;</description></item><item><title>谷歌去年斥资18亿美元共收购48家公司</title><link>https://fukun.org/archives/0219631.html</link><pubDate>Sat, 19 Feb 2011 12:55:36 +0800</pubDate><guid>https://fukun.org/archives/0219631.html</guid><description>&lt;p&gt;据美国硅谷报纸《圣何塞信使报》网络版报道，谷歌此前提交给美国证券交易委员会(SEC)的10-K管理文件显示，2010年期间，该公司共收购了48家外部公司，所花费资金总额达18亿美元。谷歌还表示，2011年期间将继续开展外部收购活动。&lt;/p&gt;
&lt;p&gt;在谷歌去年进行的收购活动中，包括以6.81亿美元收购移动广告公司AdMob、1.79亿美元收购社交技术开发商Slide、1.58亿美元收购内容保护和视频优化技术开发商Widevine科技以及1.23亿美元收购视频压缩技术开发商On2等。除上述收购目标外，谷歌去年还收购了其他44家公司，相应总交易额为6.69亿美元。&lt;/p&gt;</description></item><item><title>什么是IFEO?什么是映像劫持?什么是Image Hijack?</title><link>https://fukun.org/archives/0218628.html</link><pubDate>Fri, 18 Feb 2011 08:55:52 +0800</pubDate><guid>https://fukun.org/archives/0218628.html</guid><description>&lt;h2 id="映像劫持简介"&gt;映像劫持简介&lt;/h2&gt;
&lt;p&gt;“映像劫持”，也被称为“IFEO”（Image File Execution Options，其实应该称为“Image Hijack”，后面章节会详细提到，至少也应该称为IFEO Hijack而不是只有“IFEO”自身！），它的存在自然有它的理由，在WindowsNT架构的系统里，IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定，系统厂商之所以会这么做，是有一定历史原因的，在Windows NT时代，系统使用一种早期的堆（Heap，由应用程序管理的内存区域）管理机制，使得一些程序的运行机制与现在的不同，而后随着系统更新换代，厂商修改了系统的堆管理机制，通过引入动态内存分配方案，让程序对内存的占用更为减少，在安全上也保护程序不容易被溢出，但是这些改动却导致了一些程序从此再也无法运作，为了兼顾这些出问题的程序，微软以“从长计议”的态度专门设计了“IFEO”技术，它的原意根本不是“劫持”，而是“映像文件执行参数”！&lt;/p&gt;</description></item><item><title>在iPad应用程序中嵌入字体的方法</title><link>https://fukun.org/archives/0217622.html</link><pubDate>Thu, 17 Feb 2011 07:53:32 +0800</pubDate><guid>https://fukun.org/archives/0217622.html</guid><description>&lt;p&gt;摘自：韩磊的博客 &lt;a href="http://blog.csdn.net/grhunter/archive/2010/11/03/5985491.aspx"&gt;http://blog.csdn.net/grhunter/archive/2010/11/03/5985491.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今天为21世纪报系一个iPad应用做技术验证，尝试在应用中加入iPad没有的字体。先Google了一下，解决方案很简单，iOS 3.2以上都支持内嵌用户字体。介绍这个技术的blog文章或论坛帖子很多，也有中文写的，但中文的文章或帖子，几乎全是人云亦云。我猜这些可敬的作者们，多半没有自己去验证过，或者验证之后不愿把遇到的问题和解决方案分享出来。&lt;/p&gt;</description></item><item><title>ASP获取当前页面URL地址（带参数）的方法</title><link>https://fukun.org/archives/0217618.html</link><pubDate>Thu, 17 Feb 2011 01:29:56 +0800</pubDate><guid>https://fukun.org/archives/0217618.html</guid><description>&lt;p&gt;ASP获取当前页面URL地址（带参数）的方法：&lt;/p&gt;
&lt;pre class="brush: vb; title: Example; notranslate" title="Example"&gt;'============================================
'获取当前Url参数的函数
Function GetUrl()
 Dim ScriptAddress, M_ItemUrl, M_item
 ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME"))
 M_ItemUrl = ""
 If (Request.QueryString &amp;lt;&amp;gt; "") Then
 ScriptAddress = ScriptAddress &amp; "?"
 For Each M_item In Request.QueryString
 If InStr(page,M_Item)=0 Then
 M_ItemUrl = M_ItemUrl &amp; M_Item &amp;"="&amp; Server.URLEncode(Request.QueryString(""&amp;M_Item&amp;"")) &amp; "&amp;"
 End If
 Next
 end if
 GetUrl ="http://"&amp;Request.ServerVariables("Server_Name")&amp;ScriptAddress &amp; M_ItemUrl
End Function
'=======================================
&lt;/pre&gt;</description></item><item><title>C++编程中对缓冲区的理解</title><link>https://fukun.org/archives/0216615.html</link><pubDate>Wed, 16 Feb 2011 02:12:31 +0800</pubDate><guid>https://fukun.org/archives/0216615.html</guid><description>&lt;p&gt;&lt;strong&gt;什么是缓冲区&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;缓冲区又称为缓存，它是内存空间的一部分。也就是说，在内存空间中预留了一定的存储空间，这些存储空间用来缓冲输入或输出的数据，这部分预留的空间就叫做缓冲区。&lt;/p&gt;
&lt;p&gt;缓冲区根据其对应的是输入设备还是输出设备，分为输入缓冲区和输出缓冲区。&lt;/p&gt;</description></item><item><title>诺基亚CEO史蒂芬·埃洛普内部备忘录曝光：承认失败承诺改变</title><link>https://fukun.org/archives/0216612.html</link><pubDate>Wed, 16 Feb 2011 01:57:02 +0800</pubDate><guid>https://fukun.org/archives/0216612.html</guid><description>&lt;p&gt;&lt;strong&gt;以下为史蒂芬·埃洛普致员工内部备忘录的内容：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你们好：&lt;/p&gt;
&lt;p&gt;有一个经久流传的故事，是关于在北海石油开采平台工作的一个人。有一天晚上，他被巨大的爆炸声惊醒，突然间整个石油平台都被熊熊烈火笼罩。几秒钟的时间里，他也被火光包围在中间。他努力穿过浓烟与烈火，来到了平台边缘，往下只能看到黑暗、冰冷和咆哮的大西洋海水。&lt;/p&gt;
&lt;p&gt;随着烈火的靠近，他只有几秒钟时间做出反应。他要么站在平台上，被烈火无情地吞没，要么从30米高的石油平台跳进冰冷的海水中。这个人站立在“燃烧的平台”，他需要作出选择。&lt;/p&gt;
&lt;p&gt;他决定跳下去。这有点出乎意料。在通常情况下，他绝不会考虑跳入冰冷的海水中。但他面对的不是通常情况，他所站立的平台已经着火。他成功跳入海中并存活下来。在被救出来之后，他说，“燃烧的平台”使得他采取了极端的行为。&lt;/p&gt;
&lt;p&gt;我们也站在一个“燃烧的平台”，我们必须决定如何改变自己的行为。&lt;/p&gt;</description></item><item><title>JAVA中整型和字符串相互转换的方法</title><link>https://fukun.org/archives/0215607.html</link><pubDate>Tue, 15 Feb 2011 09:53:12 +0800</pubDate><guid>https://fukun.org/archives/0215607.html</guid><description>&lt;p&gt;今天在搞Android的时候发现需要用到这个，可是自己java又不熟，只好查查了。&lt;/p&gt;
&lt;h2 id="java中整型和字符串相互转换的方法"&gt;JAVA中整型和字符串相互转换的方法：&lt;/h2&gt;
&lt;p&gt;1）&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;将字符串转化为整型&lt;/span&gt;&lt;/strong&gt;；&lt;/p&gt;
&lt;p&gt;int i = Integer.parseIn(String str);&lt;/p&gt;
&lt;p&gt;int i = Integer.valueOf().intValue();&lt;/p&gt;
&lt;p&gt;注：Integer.parseIn 和 Integer.valueOf 不同，前者生成的是整型，而后者是一个对象，所以要通过intValue()来获得对象的值；&lt;/p&gt;
&lt;p&gt;字串转成 Double, Float, Long 的方法大同小异.&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;span style="color: #0000ff;"&gt;&lt;strong&gt;整型转化为字符串&lt;/strong&gt;&lt;/span&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;String str = String.valueOf(int i);&lt;/p&gt;
&lt;p&gt;String str = Integer.toString(int i);&lt;/p&gt;
&lt;p&gt;String str = “” + i ;&lt;/p&gt;
&lt;p&gt;注： Double, Float, Long 的方法大同小异.&lt;/p&gt;</description></item><item><title>使用PHP创建Android应用—入门配置</title><link>https://fukun.org/archives/0214600.html</link><pubDate>Mon, 14 Feb 2011 09:12:57 +0800</pubDate><guid>https://fukun.org/archives/0214600.html</guid><description>&lt;p&gt;google的开源移动操作系统Android给智能手机市场带来了风暴。不像Apple，对想要为苹果市场（Iphone App Store）提供应用软件的开发者们有着严格的指导原则以及要求，Google将&lt;a href="http://www.developer.com/ws/article.php/3893591/The-Android-Mobile-Development-Platform-A-Reference-Guide.htm" title="The Android Mobile Development Platform Reference Guide"&gt;Android平台&lt;/a&gt;完全开放。现在你甚至能够用PHP来实现Android应用程序。Irontech的人们已经创建了一个在Android上运行的PHP接口（见&lt;a href="http://www.phpforandroid.net/" title="PHP for Android Project"&gt;PFA&lt;/a&gt;），而通过 &lt;a href="http://code.google.com/p/android-scripting/"&gt;Scripting Layer for Android&lt;/a&gt; (SL4A)，你可以建立PHP的Android应用程序。&lt;/p&gt;
&lt;p&gt;在这篇文章里，我会介绍如何安装，设置及使用PHP for Android and SL4A，我将给出一个演示程序作为例子，使用PHP for Android运行一段PHP代码。&lt;/p&gt;
&lt;h4 id="安装php-for-android"&gt;安装PHP for Android&lt;/h4&gt;</description></item><item><title>SqlServer中sqlmaint 实用工具和xp_sqlmaint扩展过程</title><link>https://fukun.org/archives/0214593.html</link><pubDate>Mon, 14 Feb 2011 07:33:53 +0800</pubDate><guid>https://fukun.org/archives/0214593.html</guid><description>&lt;p&gt;&lt;strong&gt;sqlmaint&lt;/strong&gt; 实用工具可以对一个或多个数据库执行一组指定的维护操作。使用 &lt;strong&gt;sqlmaint&lt;/strong&gt;，可以运行 DBCC 检查、备份数据库及其事务日志、更新统计以及重建索引。所有数据库维护活动都会生成报表，可以将此报表发送到指定的文本文件、HTML 文件或电子邮件帐户。&lt;strong&gt;sqlmaint&lt;/strong&gt; 可以执行以前版本的 SQL Server 所创建的数据库维护计划。若要从命令提示符运行 SQL Server 维护计划，请使用 dtexec 实用工具。&lt;/p&gt;</description></item><item><title>谷歌推出婚庆服务产品 可帮助情侣策划婚礼</title><link>https://fukun.org/archives/0213590.html</link><pubDate>Sun, 13 Feb 2011 04:56:11 +0800</pubDate><guid>https://fukun.org/archives/0213590.html</guid><description>&lt;p&gt;据国外某媒体报道，谷歌近日推出了一款新的婚庆服务产品，可帮助情侣策划他们的整个婚礼，让他们专心享受大喜日子的甜蜜时刻。&lt;/p&gt;
&lt;p&gt;谷歌的高级产品营销经理利萨-康克古德（Lisa Conquergood）在谷歌博客（Google Blog）上写道，“为了帮助人们策划这个重要的大喜日子，我们已在谷歌协作平台Sites、在线办公软件Docs和图片编辑软件Picnik上创造了婚礼策划模板，并在google.com/weddings网上汇聚了这些产品的各种使用方法和技巧。这套婚庆服务产品将能简化婚礼策划过程，让新婚夫妇把注意力放在更有趣的事情上——比如，品尝蛋糕！”&lt;/p&gt;</description></item><item><title>诺基亚与微软联盟,危及英特尔,利好苹果</title><link>https://fukun.org/archives/0212588.html</link><pubDate>Sat, 12 Feb 2011 08:58:07 +0800</pubDate><guid>https://fukun.org/archives/0212588.html</guid><description>&lt;p&gt;2月11日下午消息，诺基亚与微软刚刚宣布，双方计划建立广泛的战略伙伴关系，诺基亚手机将采用微软Windows Phone 7系统。&lt;/p&gt;
&lt;p&gt;据悉，诺基亚和微软打算共同创造市场领先的移动产品，旨在为消费者、经营者服务和开发商的选择和无与伦比的机会。由于每个公司将专注于核心能力，伙伴关系将建立快速进入市场的时间执行的机会。&lt;/p&gt;</description></item><item><title>传苹果将推廉价版iPhone抵御谷歌Android进攻;谷歌Android美国市场份额赶超苹果iPhone</title><link>https://fukun.org/archives/0211585.html</link><pubDate>Fri, 11 Feb 2011 01:08:07 +0800</pubDate><guid>https://fukun.org/archives/0211585.html</guid><description>&lt;p&gt;据国外某媒体报道，消息人士透露，苹果正在开发更廉价、尺寸更小的新版iPhone，抵御谷歌Android手机的竞争。&lt;/p&gt;
&lt;p&gt;一位看到原型产品的消息人士称，相比目前型号，新iPhone尺寸更小、价格更低。他要求不透露姓名，因为该计划还未公开。另外两位消息人士称，苹果还正在开发可使iPhone更容易地使用多个无线网络的技术。&lt;/p&gt;
&lt;p&gt;因病离开公司的苹果首席执行官史蒂夫·乔布斯仍在参与战略决策，他希望缩小与Android手机的价格差距。据Canalys称，第四季度谷歌在全球智能手机市场的份额增长2倍多，达到32.9%，而苹果只有16%。&lt;/p&gt;
&lt;p&gt;见过原型产品的消息人士称，苹果曾考虑以约200美元的价格销售新版iPhone，并且不需要用户签订两年的服务合同。对此，苹果的女发言人娜塔莉·克里斯（Natalie Kerris）拒绝发表评论。&lt;/p&gt;</description></item><item><title>惠普发布首款webOS系统平板TouchPad</title><link>https://fukun.org/archives/0210579.html</link><pubDate>Thu, 10 Feb 2011 02:53:30 +0800</pubDate><guid>https://fukun.org/archives/0210579.html</guid><description>&lt;p&gt;惠普今日在美国召开发布会，正式推出了其首款webOS系统平板TouchPad，这也是惠普正式推出的首款平板产品，同时发布的还包括Pre 3和Veer两款手机。&lt;/p&gt;
&lt;div id="attachment_580" style="width: 510px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/02/hp-webOS.png"&gt;&lt;img class="size-full wp-image-580" title="hp-webOS" src="//fukun.org/wp-content/uploads/2011/02/hp-webOS.png" alt="Palm官网截图" width="500" height="244" srcset="//fukun.org/wp-content/uploads/2011/02/hp-webOS.png 500w, //fukun.org/wp-content/uploads/2011/02/hp-webOS-300x146.png 300w" sizes="(max-width: 500px) 100vw, 500px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Palm官网截图
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>啊。。。杯具洗具？</title><link>https://fukun.org/archives/0209583.html</link><pubDate>Wed, 09 Feb 2011 15:59:26 +0800</pubDate><guid>https://fukun.org/archives/0209583.html</guid><description>&lt;p&gt;今天一大早就被人打电话从被窝里吵醒了，是一以前家属院的一阿姨，要给他刚上大一的儿子买个笔记本，带着儿子在来北京的路上了，问我有没有时间，让帮着参谋参谋……我说您都在来北京的路上了，我没时间也得有时间了啊。本来答应请一朋友吃饭的，这次也泡汤了。。&lt;/p&gt;
&lt;p&gt;我妈单位还有一阿姨，一直也说要帮他儿子买个笔记本，自己又不懂，想找个懂的帮着看看，这次也一并去了，让我帮着挑。。&lt;/p&gt;
&lt;p&gt;等见面后，家属院那阿姨说，她自己也要买一个。。。这次成三个笔记本了。。对于硬件并不是十分在行的我，，鸭梨很大啊。。&lt;/p&gt;</description></item><item><title>微软谷歌口水战再升级 称抄袭指控是“侮辱”</title><link>https://fukun.org/archives/0208577.html</link><pubDate>Tue, 08 Feb 2011 12:02:37 +0800</pubDate><guid>https://fukun.org/archives/0208577.html</guid><description>&lt;p&gt;北京时间2月3日消息，据国外某媒体报道，微软高级副总裁、互联网部门顶级高管之一尤素夫·迈赫迪（Yusuf Mehdi）称，谷歌指控微软复制其互联网搜索结果是对微软的“侮辱”。这导致两家公司的口水战再次升级。&lt;/p&gt;
&lt;p&gt;迈赫迪周三在博客上表示，谷歌的行动有点超出了做秀的范畴，“谷歌的抗议水平和假装愤怒太有趣了”。他称：“我们从未复制竞争对手的任何搜索结果，我们在搜索质量和相关性上有一些世界上最好的想法，指责任何有此类行为的人都是在侮辱”。&lt;/p&gt;</description></item><item><title>PHP常见的两个面试题</title><link>https://fukun.org/archives/0207573.html</link><pubDate>Sun, 06 Feb 2011 16:45:40 +0800</pubDate><guid>https://fukun.org/archives/0207573.html</guid><description>&lt;p&gt;php面试中，有两个题目，很常见。但却很容易错。&lt;/p&gt;
&lt;p&gt;第一题：&lt;/p&gt;
&lt;pre class="brush: php; title: Example; notranslate" title="Example"&gt;$a = 2;
$b = &amp;$a;
uset($a);
echo $b;
&lt;/pre&gt;
&lt;p&gt;问，会输出什么？&lt;/p&gt;</description></item><item><title>PHP面试基础题</title><link>https://fukun.org/archives/0206568.html</link><pubDate>Sun, 06 Feb 2011 15:59:45 +0800</pubDate><guid>https://fukun.org/archives/0206568.html</guid><description>&lt;p&gt;1.表单中 get与post提交方法的区别?&lt;/p&gt;
&lt;p&gt;答：get用户端将数据加到URL后，格式为”?字段1=输入数据1&amp;amp;字段2=输入数据2&amp;amp;…”。&lt;/p&gt;
&lt;p&gt;由于get提交参数后会在地址栏中显示出来，所以会产生严重的安全问题。&lt;/p&gt;
&lt;p&gt;get传输的数据量小，get传输的数据量小，这主要是因为受url长度限制;而post可以传输大量的数据。&lt;/p&gt;
&lt;p&gt;get限制表单中数据集的范围为asc2码，而post可以支持整个iso10646字符集。&lt;/p&gt;
&lt;p&gt;2.session与cookie的区别?&lt;/p&gt;</description></item><item><title>常用数据恢复软件对比</title><link>https://fukun.org/archives/0205566.html</link><pubDate>Sat, 05 Feb 2011 15:31:09 +0800</pubDate><guid>https://fukun.org/archives/0205566.html</guid><description>&lt;p&gt;常用数据恢复软件对比，哪款数据恢复软件好用？&lt;/p&gt;
&lt;p&gt;常用的数据恢复软件有4个&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;FinalData 2.0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;易我数据恢复 2.0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;超级硬盘数据恢复软件 3.0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;RecoverMyFile&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>对于大流量的网站,采用什么样的方法来解决访问量问题?</title><link>https://fukun.org/archives/0205562.html</link><pubDate>Fri, 04 Feb 2011 16:21:50 +0800</pubDate><guid>https://fukun.org/archives/0205562.html</guid><description>&lt;p&gt;首先，确认服务器硬件是否足够支持当前的流量。&lt;/p&gt;
&lt;p&gt;其次，优化数据库访问。&lt;/p&gt;
&lt;p&gt;第三，禁止外部的盗链。&lt;/p&gt;
&lt;p&gt;第四，控制大文件的下载。&lt;/p&gt;
&lt;p&gt;第五，负载均衡，使用不同主机分流主要流量。&lt;/p&gt;
&lt;p&gt;第六，使用流量分析统计软件，针对问题做进一步的优化。&lt;/p&gt;</description></item><item><title>什么是SOAP;SOAP简介入门</title><link>https://fukun.org/archives/0204557.html</link><pubDate>Fri, 04 Feb 2011 15:58:11 +0800</pubDate><guid>https://fukun.org/archives/0204557.html</guid><description>&lt;p&gt;&lt;strong&gt;SOAP 是基于 XML 的简易协议，可使应用程序在 HTTP 之上进行信息交换。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;或者更简单地说：SOAP 是用于访问网络服务的协议。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; SOAP可以作为一种协议来使用以访问 web service。&lt;/p&gt;
&lt;h2 id="什么是-soap"&gt;什么是 SOAP？&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SOAP 指_简易对象访问协议_&lt;/li&gt;
&lt;li&gt;SOAP 是一种_通信协议_&lt;/li&gt;
&lt;li&gt;SOAP 用于_应用程序之间_的通信&lt;/li&gt;
&lt;li&gt;SOAP 是一种用于_发送消息_的格式&lt;/li&gt;
&lt;li&gt;SOAP 被设计用来_通过因特网_进行通信&lt;/li&gt;
&lt;li&gt;SOAP &lt;em&gt;独立于平台&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;SOAP &lt;em&gt;独立于语言&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;SOAP &lt;em&gt;基于 XML&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;SOAP &lt;em&gt;很简单并可扩展&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;SOAP 允许您_绕过防火墙_&lt;/li&gt;
&lt;li&gt;SOAP 将被作为 _W3C 标准_来发展&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>什么是XML-RPC？</title><link>https://fukun.org/archives/0204554.html</link><pubDate>Fri, 04 Feb 2011 15:49:41 +0800</pubDate><guid>https://fukun.org/archives/0204554.html</guid><description>&lt;p&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;什么是XML-RPC？&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;XML-RPC的全称是XML Remote Procedure Call，即XML远程方法调用。&lt;/p&gt;
&lt;p&gt;XML-RPC透过向装置了这个协定的服务器发出HTTP请求。发出请求的用户端一般都是需要向远端系统要求呼叫的软件。&lt;/p&gt;
&lt;p&gt;它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。&lt;/p&gt;
&lt;p&gt;这种远程过程调用使用http作为传输协议，XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单，但同时能够传送、处理、返回复杂的数据结构。&lt;/p&gt;</description></item><item><title>央视收视率出炉：93.88%家庭收看春晚;傅琰东魔术涉嫌“虐鱼”？</title><link>https://fukun.org/archives/0204552.html</link><pubDate>Fri, 04 Feb 2011 05:49:48 +0800</pubDate><guid>https://fukun.org/archives/0204552.html</guid><description>&lt;p&gt;昨晚央视兔年春晚正式揭开神秘的面纱，由于临时从29个节目增加到31个，今年央视春晚延长了足足半个小时，直到今天凌晨一点才降下帷幕。在昨晚的春晚直播中，林志玲最受器重，足足露脸近20分钟成为春晚大红人，不过在随后接受新闻频道采访时，周杰伦脱序采访抢掉林志玲风采。至于每年最期待的小品王赵本山，今年《同桌的你》只是走过场撑门面，戏份全让给徒弟们。表演完小品后，赵本山直接去输液，身体情况让人担忧。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;两代谋女郎同台PK纯&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;妈妈董洁更胜一筹&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>DigDeeply祝大家新年快乐！</title><link>https://fukun.org/archives/0203550.html</link><pubDate>Wed, 02 Feb 2011 16:51:13 +0800</pubDate><guid>https://fukun.org/archives/0203550.html</guid><description>&lt;p&gt;祝大家新年快乐！&lt;/p&gt;
&lt;p&gt;几个钟头前给大家发短信拜年，不知道该写点什么好，大家都是从网上copy长长的一段过来，或者直接飞信发，实在是没有意思，让别人看一眼就不再看了，也没有回复的欲望，以往我都是写一句很简洁的，祝XX节快乐..，然后群发给大家，效果比从网上copy的效果要好些。&lt;/p&gt;
&lt;p&gt;今年突然决定不再群发，分别对每一个人单独写句话表示祝福~~~&lt;/p&gt;
&lt;p&gt;花了差不多一个小时时间，基本上全搞定了，效果还是很不错滴，很值得啊~~~~&lt;/p&gt;
&lt;p&gt;有一些关系非常好的哥们啥的就没发了，大家谁跟谁啊，不在乎这么个过场，哈哈~~&lt;/p&gt;</description></item><item><title>为什么正月不能剪头发？正月里为什么不剪头发?</title><link>https://fukun.org/archives/0202548.html</link><pubDate>Tue, 01 Feb 2011 16:55:19 +0800</pubDate><guid>https://fukun.org/archives/0202548.html</guid><description>&lt;p&gt;1.正月里剃头—“思旧”&lt;/p&gt;
&lt;p&gt;2.正月里剃头—“思舅”&lt;/p&gt;
&lt;p&gt;第一种解释  正月里剃头—“思旧”&lt;/p&gt;
&lt;p&gt;旧时民俗禁忌甚多，“正月里不许剃头”即为一例。夏历第一个月里，任凭男孩毛发疯长，却丝毫不能侵犯，否则对舅舅不利。“正月里剃头，死舅舅。”多吓人的一份责任，舅舅的安危全系于外甥的头顶之物。直至夏历二月初二，男孩才有了剃头的自由。&lt;/p&gt;
&lt;p&gt;外甥的头发因何与舅舅的性命有了瓜葛？实在费思索。社会学家考证人类是从母权社会一步一个跟头斗才到父权社会的。在女人说了算的母系氏族社会，娘家人的重要代表——舅舅，自然不可小觑。&lt;/p&gt;</description></item><item><title>春节过年红包是怎么来的？为什么要发红包？</title><link>https://fukun.org/archives/0202546.html</link><pubDate>Tue, 01 Feb 2011 16:47:13 +0800</pubDate><guid>https://fukun.org/archives/0202546.html</guid><description>&lt;p&gt;相传送红包的习俗，在很久以前就流行，但其时人们不过是以寓意吉祥的鲜红色纸，包着一张写满祝福字句的字条，送给亲朋好友，以表心意。&lt;/p&gt;
&lt;p&gt;到了清朝，人们则改用一张形状与正方形相若的红纸，包裹铜钱，封作“利是”。而第一代的红包袋，约于清光绪末年，印刷技术开始广为所用时，才得以问世。其时的所谓红包袋，做法非常简单，只以红纸印上黄油，再于未干的黄油上缀上金粉，效果就如现今烫了金字的红包袋般，而图案则多以简单为主，再配以吉利的字句。另一种是最多见的，即由家长用红纸包裹分给孩子的钱。压岁钱可在晚辈贺年后当众赏给，亦可在除夕夜孩子睡着时，由家长愉偷地放在孩子的枕头底下。&lt;/p&gt;
&lt;p&gt;民间认为分压岁钱给孩子，当恶鬼妖魔或”年”去伤害孩子时，孩子可以用这些钱贿赂它们而化凶为吉。清人吴曼云《压岁钱》的诗中云：”百十钱穿彩线长，分来再枕自收藏，商量爆仗谈箫价，添得娇儿一夜忙”。由此看来，压岁钱牵系着一颗颗童心，而孩子的压岁钱主要用来买鞭炮、玩具和糖果等节日所需的东西。&lt;/p&gt;
&lt;p&gt;现在尊长为晚辈分送压岁钱的习俗仍然盛行，压岁饯的数额从几十到几百不等，这些压岁钱多被孩子们用来购买图书和学习用品，新的时尚为压岁钱授予了新的内容。&lt;/p&gt;</description></item><item><title>Android超越塞班成为全球最大智能手机平台</title><link>https://fukun.org/archives/0201543.html</link><pubDate>Tue, 01 Feb 2011 14:46:26 +0800</pubDate><guid>https://fukun.org/archives/0201543.html</guid><description>&lt;p&gt;据国外媒体报道，谷歌Android平台在2010年第四季度超越诺基亚塞班成为全球最大智能手机平台，结束了塞班引领智能手机市场长达10多年的历史。&lt;/p&gt;
&lt;p&gt;市场研究公司Canalys周一表示，手机厂商在去年第四季度一共售出3290万部Android手机，同比增长近6倍；同期基于塞班系统的智能手机销量为3100万部。&lt;/p&gt;
&lt;p&gt;塞班失去领先优势对于诺基亚来说可谓雪上加霜，它一直在为夺回被iPhone等竞争对手抢走的高端智能手机市场份额而努力。Android操作系统已经成为大多数手机厂商的标准平台，到目前为止，只有诺基亚、苹果和RIM还没有使用它。&lt;/p&gt;
&lt;p&gt;全球各地的电信运营商积极推销Android手机，这也为Android超越塞班提供了不小的帮助。Canalys的分析师提姆谢佛德（Tim Shepherd）称：“我们已经看到许多厂商推出了一些非常畅销的Android手机。”&lt;/p&gt;</description></item><item><title>下一代互联网通信机制——IPv6协议</title><link>https://fukun.org/archives/0201541.html</link><pubDate>Mon, 31 Jan 2011 17:04:12 +0800</pubDate><guid>https://fukun.org/archives/0201541.html</guid><description>&lt;p&gt;目前全球使用的ＩＰ地址主要基于１９７７年创建的互联网通信协议ＩＰｖ４，所允许的ＩＰ地址只有４３亿，已不能满足现有需求，面临地址枯竭的局面。&lt;/p&gt;
&lt;p&gt;一方面ＩＰ地址资源有限，另一方面互联网迅猛发展。在这样的情况下，ＩＰｖ６协议应运而生。&lt;/p&gt;
&lt;p&gt;ＩＰｖ６协议的ＩＰ地址有多少？“国际互联网名称和编号分配公司”（ＩＣＡＮＮ）专家说，其数量相当于在３４０这个数字后再加 ３６个零，可以使冰箱、电视、电话等各种设备都分配到一个ＩＰ地址并在网络上互联。对这些家用电器进行智能控制，可帮助尚处设想之中的“物联网”的实现。&lt;/p&gt;</description></item><item><title>网站地图</title><link>https://fukun.org/sitemap/</link><pubDate>Sun, 30 Jan 2011 16:40:26 +0800</pubDate><guid>https://fukun.org/sitemap/</guid><description>&lt;!-- ddsitemapgen --&gt;</description></item><item><title>为一个单网卡的XP系统设置两个或多个IP地址</title><link>https://fukun.org/archives/0131532.html</link><pubDate>Sun, 30 Jan 2011 16:13:41 +0800</pubDate><guid>https://fukun.org/archives/0131532.html</guid><description>&lt;p&gt;网卡是一个物理设备，而不是一个逻辑设备。设置网卡地址则是一个逻辑地址，不是物理地址。&lt;/p&gt;
&lt;p&gt;这样，一个网卡上面可以设置多个ip地址和网关。具体实施是这样的&lt;/p&gt;
&lt;p&gt;打开网卡属性，最后一项有一个TCP/IP，点开他就可以了，那么现在你就能见到里面有设置IP地址，网络掩码和网关，下面还有DNS的设置。&lt;/p&gt;
&lt;p&gt;最右边有一个高级，点开之后，里面可以设置第2、3个网卡的地址和多出来的DNS或者网关。&lt;/p&gt;</description></item><item><title>asp –错误代码集合</title><link>https://fukun.org/archives/0130514.html</link><pubDate>Sun, 30 Jan 2011 15:35:35 +0800</pubDate><guid>https://fukun.org/archives/0130514.html</guid><description>&lt;p&gt;ActiveServerPages,ASP0126(0x80004005)–&amp;gt;找不到包含文件&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–&amp;gt;sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态，或表不存在于conn打开的数据库中)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–&amp;gt;sql语句出错(字段名错误,或数据类型不匹配)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–&amp;gt;sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–&amp;gt;sql语句出错(要插入或更新的数据溢出)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–&amp;gt;sql语句出错(update字段名或要更新的数据类型错误)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80004005)–&amp;gt;sql语句出错(要插入或更新的字段的数值不能为空值)&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80004005) –&amp;gt;打开数据库出错，没有在指定目录发现数据库&lt;/p&gt;
&lt;p&gt;MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)–&amp;gt;没有发现表&lt;/p&gt;</description></item><item><title>asp –统计文件夹及其下的所有文件大小</title><link>https://fukun.org/archives/0130511.html</link><pubDate>Sun, 30 Jan 2011 15:32:09 +0800</pubDate><guid>https://fukun.org/archives/0130511.html</guid><description>&lt;p&gt;VBScript code   —-asp –统计文件夹及其下的所有文件大小&lt;/p&gt;
&lt;p&gt;——————————————————————&lt;/p&gt;
&lt;p&gt;Function totalsize(size)&lt;/p&gt;
&lt;p&gt;If size&amp;lt;1024 Then&lt;/p&gt;
&lt;p&gt;totalsize=size&amp;amp;” Bytes”&lt;/p&gt;
&lt;p&gt;Elseif size&amp;lt;1048576 Then&lt;/p&gt;
&lt;p&gt;totalsize=Round((size/1024),2)&amp;amp;” KB”&lt;/p&gt;
&lt;p&gt;Else&lt;/p&gt;
&lt;p&gt;totalsize=Round((size/1024/1024),2)&amp;amp;” MB”&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;End Function&lt;/p&gt;
&lt;p&gt;set fs = CreateObject(“Scripting.FileSystemObject”)&lt;/p&gt;
&lt;p&gt;Set folder = fs.GetFolder(path)&lt;/p&gt;
&lt;p&gt;Response.Write(totalsize(folder.Size) &amp;amp; ” “&amp;amp; vbCrLf)&lt;/p&gt;
&lt;p&gt;——————————————————————&lt;/p&gt;</description></item><item><title>重庆首笔个人住房房产税申报入库 税款超6000元</title><link>https://fukun.org/archives/0130509.html</link><pubDate>Sun, 30 Jan 2011 15:18:00 +0800</pubDate><guid>https://fukun.org/archives/0130509.html</guid><description>&lt;p&gt;重庆市北部新区地税局30日发布消息称，重庆首笔个人住房房产税在当地申报入库，其税款为6154.83元。&lt;/p&gt;
&lt;p&gt;30日上午10点，重庆首笔个人住房房产税在北部新区地税局人和契税征收点申报入库，征收个人住房房产税6154.83元。据悉，该笔税款产生于当地某高档社区二手房转让，住宅类型为花园洋房，建筑面积202.73平方米，交易单价13071.57元/平方米。由于该住房建筑面积交易单价达到上两年重庆主城九区新建商品住房成交建筑均价2倍，即9941元/平方米，属于应税住房。&lt;/p&gt;</description></item><item><title>asp —正则表达式,RegExp</title><link>https://fukun.org/archives/0129517.html</link><pubDate>Sat, 29 Jan 2011 15:59:41 +0800</pubDate><guid>https://fukun.org/archives/0129517.html</guid><description>&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;‘名字字符检验 ­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Public Function CheckName(Str)­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Checkname=True­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Dim Rep,pass­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Set Rep=New RegExp ‘ 建立正则表达式。­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Rep.Global=True ‘设置全局可用性。­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Rep.IgnoreCase=True’设置是否区分字符大小写­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;‘设置模式。­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Rep.Pattern=”[u0009u0020u0022-u0028u002C-u002Eu003A-u003Fu005Bu005Cu0060u007Cu007Eu00FFuE5E5]”­&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 1.6; color: #222222; font-size: small;"&gt;Set pass=Rep.Execute(Str)  ‘对指定的字符串执行正则表达式搜索。­&lt;/span&gt;&lt;/p&gt;</description></item><item><title>光棍危机 娶上老婆今后将作为成功男人的标志</title><link>https://fukun.org/archives/0128504.html</link><pubDate>Fri, 28 Jan 2011 14:57:23 +0800</pubDate><guid>https://fukun.org/archives/0128504.html</guid><description>&lt;p&gt;据称中国光棍危机将于2012年全面爆发。男性人口将大幅超过女性，到2016年超出女性人口30%以上。总光棍人数将由2012年的1000万上升到2017年的3000多万，2022年近4000万。娶上老婆今后将作为成功男人的标志。&lt;/p&gt;</description></item><item><title>三部委整顿房产中介 吃差价黑手时代面临终结</title><link>https://fukun.org/archives/0127502.html</link><pubDate>Thu, 27 Jan 2011 01:18:47 +0800</pubDate><guid>https://fukun.org/archives/0127502.html</guid><description>&lt;p&gt;我国首部专门规范房地产经纪行为的部门规章出台。“吃差价”、协助签订“阴阳合同”等被正式列入“从业禁止行为”，房产中介“黑手”时代面临终结。&lt;/p&gt;
&lt;p&gt;住建部、发改委、人保部近日联合出台《房地产经纪管理办法》，将于4月1日起实施。这是我国第一个专门规范房地产经纪行为的部门规章。&lt;/p&gt;
&lt;p&gt;住建部有关负责人表示，《办法》的出台，是全面落实国务院关于加强房地产调控的重要举措，对于整顿房地产市场秩序，规范房地产经纪行为，促进房地产经纪行业健康发展，将起到积极作用。&lt;/p&gt;</description></item><item><title>人社部：2010年应届高校毕业生就业率达90.7%</title><link>https://fukun.org/archives/0126500.html</link><pubDate>Wed, 26 Jan 2011 13:20:15 +0800</pubDate><guid>https://fukun.org/archives/0126500.html</guid><description>&lt;p&gt;社部新闻发言人尹成基昨日在新闻发布会上表示，截至2010年12月底，应届高校毕业生就业率达90.7%，较上一年的87%提高了3个百分点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;城镇登记失业率为4.1%&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;尹成基称，2011年应届高校毕业生将有660万人。&lt;/p&gt;
&lt;p&gt;根据官方此前发布的消息，去年应届高校毕业生人数为631万，就业率达90.7%，意味着近60万应届高校毕业生去年未找到工作。&lt;/p&gt;</description></item><item><title>京东称特价耳机无货大规模毁单</title><link>https://fukun.org/archives/0125496.html</link><pubDate>Tue, 25 Jan 2011 15:59:24 +0800</pubDate><guid>https://fukun.org/archives/0125496.html</guid><description>&lt;p&gt;B2C企业京东商城近日陷入“乌龙耳机门”，原价2100元的高级耳机以999元特价促销，引来众多消费者购买，但随后京东以货源不足无法供货为由，取消了大量订单。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;订购特价耳机被删单&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;昨日，两名消费者向《新京报》反映，称去年12月22日在京东商城订购特价耳机，原价2100元，促销价999元。但在他们成功下单后，京东商城却在20多天后通知“缺货”，请消费者撤销订单。据称该款特价耳机下单超过了1000件。&lt;/p&gt;
&lt;p&gt;消费者罗先生告诉记者，他知晓京东这一促销活动后，当即下订单购买了这款耳机。当天与罗先生同样被这一价格吸引下单的用户不在少数，并且有的用户一次订购了多个耳机。不过，京东随后致电给购买多个耳机的用户，表示可以保证一个订单有货，其余订单不能保证有货，请求客户自行删除多余的订单。&lt;/p&gt;</description></item><item><title>换上DVI数据线后屏幕不显示，“黑屏”，按menu菜单出现Test Ok</title><link>https://fukun.org/archives/0124494.html</link><pubDate>Mon, 24 Jan 2011 15:35:10 +0800</pubDate><guid>https://fukun.org/archives/0124494.html</guid><description>&lt;p&gt;前天陪我的一个哥哥去中关村攒了一台电脑，我管老板多要了一根DVI线，打算给我的三星E1920w换上。&lt;/p&gt;
&lt;p&gt;先拔掉了原来的VGA线，换上DVI线，然后手动切换显示器的source到数字信号，却发现屏幕一片黑，什么都不显示，按下边的按钮，没有反应，只有在按menu键的时候，屏幕左上角会出现英语提示： Test OK.   但是屏幕却是什么内容都没有。&lt;/p&gt;
&lt;p&gt;开始怀疑线的问题，难道是线的针数不对？这个DVI线的两头都是那种19针的，有一个大针，然后两组方形的9针；难道这个显示器需要的是25针的？已经打算要放弃了，后来却意外的发现，把显示器的信号源获取改为自动后，换上线直接就可以用了。后来我又切换成手动获取信号源，又是黑屏，不显示，只提示Test OK，手动模式下把信号源切换到数字信号，接上DVI线，然后重启电脑，发现也OK。可以显示了。。&lt;/p&gt;
&lt;p&gt;不过效果感觉的确没有多大变化。。。&lt;/p&gt;</description></item><item><title>谷歌工程师：互联网IP地址数周内将用完 [6月24日为全球IPv6测试日]</title><link>https://fukun.org/archives/0124489.html</link><pubDate>Mon, 24 Jan 2011 01:32:36 +0800</pubDate><guid>https://fukun.org/archives/0124489.html</guid><description>&lt;p&gt;与公路交通网类似，互联网也会拥堵，可惜“摇号”、“限号”等缓解公路交通压力的方式无法适用于互联网通信。由于互联网必须给任何接驳入网络的终端分配独享IP地址，随着网络终端多样化，互联网IP地址分配压力越来越大。&lt;/p&gt;
&lt;p&gt;切莫认为一个网民只占用一个IP地址。现代社会，许多单一网民，不仅拥有台式上网电脑，还使用笔记本、平板电脑、智能电话等移动终端进入互联网，引发数字拥堵。而这种拥堵的结局，便是将在数周内出现的状况：互联网IP地址全部用完。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;数周内IP地址将用完&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;“在未来数周内，IP地址便将用罄，”美国谷歌公司工程师洛伦索·科利蒂22日说到，“有时，我们就像开着车往墙上撞一样。”&lt;/p&gt;</description></item><item><title>VeryCD因未取得视听许可证或将关闭</title><link>https://fukun.org/archives/0123486.html</link><pubDate>Sun, 23 Jan 2011 08:08:12 +0800</pubDate><guid>https://fukun.org/archives/0123486.html</guid><description>&lt;p&gt;1月23日凌晨消息，昨日晚间国内著名资源分享网站VeryCD，突然进行内容方面的大规模调整，其中音乐频道已经关闭，影视内容跳转向在线观看的电驴大全页面。据悉，VeryCD几个主要下载分类都会关闭，但尚不涉及关站。&lt;/p&gt;
&lt;p&gt;VeryCD正面临成立七年以来的最大难关。&lt;/p&gt;
&lt;p&gt;继中国第一P2P门户BTChina命运终结之后，**著名P2P下载分享网站VeryCD或将要关闭，目前音乐频道已经下线，只能在线观看，下载也即将关闭。**据不完全统计，已经被关的BT站点达400逾家。&lt;/p&gt;</description></item><item><title>好累。。。困</title><link>https://fukun.org/archives/0122484.html</link><pubDate>Sat, 22 Jan 2011 14:30:44 +0800</pubDate><guid>https://fukun.org/archives/0122484.html</guid><description>&lt;p&gt;好累。。。困&lt;/p&gt;</description></item><item><title>财政部：2010年全国财政收入超8万亿</title><link>https://fukun.org/archives/0121482.html</link><pubDate>Fri, 21 Jan 2011 15:59:12 +0800</pubDate><guid>https://fukun.org/archives/0121482.html</guid><description>&lt;p&gt;2010年，全国财政预算执行情况良好，财政收入较快增长，各项重点支出得到较好保障。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一、全国财政收入情况&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;12月份，全国财政收入6340亿元，比上年同月增加1215亿元，增长23.7%。其中：中央本级收入2230亿元，增长20.5%；地方本级收入4110亿元，增长25.5%。&lt;/p&gt;</description></item><item><title>Verizon版iPhone 4十大不给力:未搭载4G网络</title><link>https://fukun.org/archives/0120477.html</link><pubDate>Thu, 20 Jan 2011 13:11:11 +0800</pubDate><guid>https://fukun.org/archives/0120477.html</guid><description>&lt;p&gt;根据国外媒体报道，在经过了三年多的漫长等待和不绝于耳的传闻中，Verizon终于要推出CDMA版iPhone智能手机了。本周一，Verizon在美国纽约正式宣布获得了苹果iPhone的经销权。&lt;/p&gt;
&lt;p&gt;苹果公司首席运营官蒂姆库克(Tim Cook)出席了Verizon版iPhone的发布仪式。Verizon版iPhone的售价介于199美元到299美元之间，并将于2月10日开始发售。&lt;/p&gt;</description></item><item><title>公司年会—-休息</title><link>https://fukun.org/archives/0119479.html</link><pubDate>Wed, 19 Jan 2011 15:59:45 +0800</pubDate><guid>https://fukun.org/archives/0119479.html</guid><description>&lt;p&gt;公司年会—-休息&lt;/p&gt;
&lt;p&gt;发了一堆奖，将近1/2的中奖率，一个没摸着，后来抢了3个毛绒兔子，最后还是被瓜分掉了。。。悲催。。&lt;/p&gt;
&lt;p&gt;也应了天蝎座的一个特性，永远不要寄希望于偶然性的暴富……&lt;/p&gt;</description></item><item><title>苹果CEO乔布斯宣布病休 委托COO负责日常运营</title><link>https://fukun.org/archives/0118474.html</link><pubDate>Tue, 18 Jan 2011 01:54:07 +0800</pubDate><guid>https://fukun.org/archives/0118474.html</guid><description>&lt;p&gt;据国外媒体报道，苹果首席执行官乔布斯今日在向公司所有员工发送的一封电子邮件中宣布他将再次病休一段时间，但他将仍然担任首席执行官并参与公司重大战略决策。&lt;/p&gt;
&lt;p&gt;乔布斯在电子邮件中写道，他在病休期间，公司的日常经营管理工作将交给首席运营官提姆库克（Tim Cook）负责。&lt;/p&gt;
&lt;p&gt;乔布斯没有说明他将于何时返回公司，但他在电子邮件中表示自己“非常热爱苹果并希望能够尽快回到公司”。同时他还指出，库克将负责执行公司为2011年制定的各项计划。&lt;/p&gt;</description></item><item><title>狗日的www.superfish.com与IE Tabs Plus</title><link>https://fukun.org/archives/0117464.html</link><pubDate>Sun, 16 Jan 2011 16:14:30 +0800</pubDate><guid>https://fukun.org/archives/0117464.html</guid><description>&lt;p&gt;首先，你能来到这儿，有90%的可能你是一名开发者，说通俗点，无非就是设计、美工或者程序员。而且你在使用火狐……你使用了火狐兼容IE的插件IE Tab Plus…………&lt;/p&gt;
&lt;p&gt;今天我在浏览自己的个人站的时候，突然发现个人站的页面半天也打不开，总是在加载，发现在浏览器左下方的加载进度里面居然有&lt;span style="color: #ff0000;"&gt;&lt;a href="https://www.superfish.com"&gt;www.superfish.com&lt;/a&gt;&lt;/span&gt;,让我很差异，我从来没用过www.superfish.com的任何东西啊，怎么会加载它呢。于是去google了一下~~发现这玩意居然跟FireFox的插件IE Tabs Plus有关。&lt;/p&gt;
&lt;p&gt;这个怪异事件要从安装IE Tab Plus/IE Tab + 时开始说起，在安装IE Tab的时候，通过搜索Firefox的插件，发现了三个结果。&lt;/p&gt;</description></item><item><title>网店卖家称年末快递变慢 怕丢东西不敢写货名 快递员是大爷</title><link>https://fukun.org/archives/0116461.html</link><pubDate>Sun, 16 Jan 2011 02:49:31 +0800</pubDate><guid>https://fukun.org/archives/0116461.html</guid><description>&lt;p&gt;临近年末，很多在网上购物的买家发现，商品寄来的时间慢了。&lt;/p&gt;
&lt;p&gt;“全国快递‘爆仓’，收货时间延迟，希望亲们谅解。”类似的善意提醒在很多网上店铺都已出现。&lt;/p&gt;
&lt;p&gt;电子商务和快递业之间存在着相依相存的紧密关系，据国家邮政局的相关调查显示，电子商务已成为我国快递业发展的巨大推动力，全国快递业三分之一的业务量由电子商务牵动完成；而同时，快递行业如若出现问题，必将制约电子商务整个产业链的正常运转。&lt;/p&gt;</description></item><item><title>2011年研究生考试今日拉开帷幕 151万人报考</title><link>https://fukun.org/archives/0115459.html</link><pubDate>Sat, 15 Jan 2011 04:30:26 +0800</pubDate><guid>https://fukun.org/archives/0115459.html</guid><description>&lt;p&gt;2011年全国硕士研究生 统一入学考试今日拉开大幕，将有151万考生走进考场。教育部日前表示，在各地自检基础上，已派出14个检查组分赴24个省(区、市)进行抽查，督促各地落实考试安全责任，采取多种措施严打舞弊行为。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;考研 热度不减 报名人数比去年增10万&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>CDMA版水货iPhone4将入华 65%网民表示愿意购买</title><link>https://fukun.org/archives/0114455.html</link><pubDate>Fri, 14 Jan 2011 15:59:02 +0800</pubDate><guid>https://fukun.org/archives/0114455.html</guid><description>&lt;p&gt;苹果刚刚在美国宣布推出CDMA版的iPhone4，中国的水货卖家已开始有所动作。昨天，记者了解到，一些国内的水货卖家已经开始接受用户对CDMA版iPhone4的预订。&lt;/p&gt;
&lt;p&gt;记者看到，淘宝网上一些手机卖家为CDMA版iPhone4开出的价格为6600元左右，而定金在400元-1000元之间。一位卖家告诉记者，CDMA版iPhone4在美国的上市时间是2月10日，现在在他那里预订，拿到现货大约要等到2月20日左右，而现在给出的价格只是预估价，待美国公布裸机价格后会再行通知。从目前的报价来看，商家基本是参照WCDMA版iPhone4裸机的价格进行定价的。&lt;/p&gt;</description></item><item><title>马化腾兑现诺言：开放QQ空间第一步</title><link>https://fukun.org/archives/0113452.html</link><pubDate>Thu, 13 Jan 2011 01:24:51 +0800</pubDate><guid>https://fukun.org/archives/0113452.html</guid><description>&lt;p&gt;腾讯公司昨日宣布，正式推出“连接QQ空间”服务，并在部分第三方网站上开始测试运营。作为腾讯开放最重要的组成部分，“该服务将允许第三方在其网站上实现QQ的一站式登录。”&lt;/p&gt;
&lt;p&gt;此次的开放印证了腾讯董事会主席兼CEO马化腾曾在3Q大战后所表示的，腾讯启动最新战略转型原则是开放和分享。&lt;/p&gt;
&lt;p&gt;这是腾讯社区开放平台的又一重大举措，用户只需要在网站输入自己的QQ号和密码，就可以直接享有该网站注册会员的一切权益。而第三方网站的内容通过“连接QQ空间”这一方式也可迅速传递给用户。这意味着用户只要拥有QQ账户就可以访问大多数互联网网站，这些网站的资源也将与QQ部分打通。&lt;/p&gt;</description></item><item><title>Verizon发布CDMA版iPhone 4 售价200美元</title><link>https://fukun.org/archives/0112449.html</link><pubDate>Wed, 12 Jan 2011 01:29:48 +0800</pubDate><guid>https://fukun.org/archives/0112449.html</guid><description>&lt;p&gt;据国外媒体报道，美国电信公司Verizon的总裁兼首席运营官洛威尔-麦克亚当（Lowell McAdam）今日确认，Verizon公司将于2011年2月10日推出CDMA版iPhone 4。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;确定2月10日推出iPhone 4&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;自2007年首次推出以来，苹果的iPhone在美国就一直由电信公司AT&amp;amp;T独家经营销售。但在今日于美国纽约市举行的新闻发布会上，Verizon公司的总裁兼首席运营官麦克亚当确认了推出CDMA版iPhone的消息，“我们已等待太久，现在就要梦想成真了。我们正准备与一个行业巨头进行合作，这个巨头就是苹果。”苹果的首席运营官提姆-库克（Tim Cook）则称，“这将是Verizon公司和苹果进行伟大合作的开始。”&lt;/p&gt;</description></item><item><title>中国全球PISA考试夺第一 美国教育专家震惊</title><link>https://fukun.org/archives/0111446.html</link><pubDate>Tue, 11 Jan 2011 13:24:03 +0800</pubDate><guid>https://fukun.org/archives/0111446.html</guid><description>&lt;p&gt;连日来，约5100名15岁上海学生的“国际学生评估项目”(PISA)测评成绩成为中外教育界的热门话题。2010年12月7日，《纽约时报》在教育版头条发表了题为《上海的高分震惊教育者》(Top Test Scores From Shanghai Stun Educators)的文章，称中国首次参与国际性标准考试“国际学生评估项目”，测验结果显示，上海学生在阅读素养、数学素养和科学素养三方面得分遥遥领先，远高于美国。这一成绩，让欧美教育专家惊叹，但同时也令学者思考：上海是中国教育发展水平较快的地区，并不代表中国教育的整体水平。&lt;/p&gt;</description></item><item><title>在windows下iis与apache共存80端口！通过各自的域名分别访问,不用加端口号(虚拟主机+代理)</title><link>https://fukun.org/archives/0110443.html</link><pubDate>Mon, 10 Jan 2011 13:56:27 +0800</pubDate><guid>https://fukun.org/archives/0110443.html</guid><description>&lt;p&gt;&lt;strong&gt;一：环境说明：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1、apache 对php支持很好，iis对php支持也不错。但是apache对asp支持（除非装一个低效率的asp插件）很差劲。&lt;/p&gt;
&lt;p&gt;2、iis对虽然能同时支持asp/php,但对于现在流行的urlrewrite 也就是静态网址就不如apache 的url重写效率高。虽然iis能装个rewrite插件（也是低效率），但不支持iis上的虚拟主机的url重写，只能对根网站、或者默认网站支持。apache的杀手锏就是支持虚拟主机的.htaccess 。所以apache的虚拟主机就可以随意支持url重写了。&lt;/p&gt;</description></item><item><title>MySpace中国CEO离职 裁员60%</title><link>https://fukun.org/archives/0110441.html</link><pubDate>Mon, 10 Jan 2011 12:17:40 +0800</pubDate><guid>https://fukun.org/archives/0110441.html</guid><description>&lt;p&gt;继旗下微博网站9911暂停发布功能后，MySpace中国近日又曝出裁员一事。知情人士向腾讯科技证实，MySpace中国CEO魏来、运营副总裁雷振剑已离职，公司裁员比例高达60%。&lt;/p&gt;
&lt;p&gt;知情人士向腾讯科技透露，本次裁员30多人，占员工总数的2/3；董事局执行主席高群耀暂代CEO职务。高群耀目前是新闻集团全球副总裁，负责新闻集团在华的所有业务，除了MySpace中国外，还包括星空传媒、福克斯、道琼斯等。&lt;/p&gt;</description></item><item><title>我国曾承诺今起公共场所禁烟 立法缺失手段乏力</title><link>https://fukun.org/archives/0109434.html</link><pubDate>Sun, 09 Jan 2011 02:37:30 +0800</pubDate><guid>https://fukun.org/archives/0109434.html</guid><description>&lt;p&gt;      作为世界卫生组织《烟草控制框架公约》的缔约方，我国承诺将在1月9日起在公共场所全面禁烟。目前，各地正在为实现公共场所全面禁烟作准备。&lt;/p&gt;
&lt;p&gt;　　今天是我国履行《烟草控制框架公约》5周年的日子。但时至今日，我国仍无一部国家级的无烟立法，且囿于相关部门政企不分、烟草涨税不涨价、烟草文化难以改变等原因，禁烟道路依旧任重道远。&lt;/p&gt;</description></item><item><title>新华网：廉租户郭春平称因谣言感到受累悲哀</title><link>https://fukun.org/archives/0109432.html</link><pubDate>Sun, 09 Jan 2011 02:32:56 +0800</pubDate><guid>https://fukun.org/archives/0109432.html</guid><description>&lt;p&gt;新华网北京1月8日电 (记者 许林贵 孙晓胜 白旭)不但搬了新房安了家，还在元旦前夕和走访廉租房租户的国家主席胡锦涛聊了天——对老北京郭春平说，这么大的幸运落到自己头上，当然感到特高兴和激动，但没想到后面却有一场“大难”在等着她。&lt;/p&gt;
&lt;p&gt;　　先是网上针对她的言论铺天盖地，随后一波波媒体蜂拥而至，迫使她把不愿意公布的家底隐私曝光。郭春平说，这几天她连家都有点不敢回，怕记者在家门口蹲点摆阵仗，怕他们再爬上家对面建筑工地的工棚，架着摄像机对准她。&lt;/p&gt;</description></item><item><title>PatitionMagic中分区时Error 2003: file size does not match fat allocation for file</title><link>https://fukun.org/archives/0108429.html</link><pubDate>Sat, 08 Jan 2011 07:16:04 +0800</pubDate><guid>https://fukun.org/archives/0108429.html</guid><description>&lt;p&gt;今天因为想装一个苹果的虚拟机，需要解压出虚拟机文件，9个G，却发现C盘空间不够了，没法解压。&lt;/p&gt;
&lt;p&gt;所以打算用分区魔术师PatitionMagic对C盘进行调整分区容量，遇到了这个错误：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;Error 2003 while executing Batch.&lt;br /&gt; Error 2003: file size does not match fat allocation for file.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>被朋友批评了：”你太男子主义了 占有欲和控制欲以及强迫欲还有表现欲”</title><link>https://fukun.org/archives/0108427.html</link><pubDate>Fri, 07 Jan 2011 16:41:20 +0800</pubDate><guid>https://fukun.org/archives/0108427.html</guid><description>&lt;p&gt;在跟一朋友说了最近的一事后，被批评了,说我:”你太男子主义了 占有欲和控制欲以及强迫欲还有表现欲”。&lt;/p&gt;
&lt;p&gt;大学四年，从拿着录取通知书报道的时候就跟他认识了，在同一个屋住了四年，我的事他基本上也算是知道的最多，了解的最清楚的吧。&lt;/p&gt;
&lt;p&gt;查了查星座，发现“B型天蝎座的人给人占有欲极强的印象”，看来朋友的评价确实沾边了，也许我就是这样的一个人吧，不过，是了，又能怎样呢，我不会去改变自己，我当然要做自我。&lt;/p&gt;
&lt;p&gt;就让我自己走下去吧，不管多么坎坷，像B型天蝎一样“是个相当执着的人，而且耐心、毅力不差，即使失败了，也毫不气馁，很快便能重新站起来继续努力”！！！&lt;/p&gt;</description></item><item><title>12星座对应出生日期 十二星座的日期 十二星座日期表 十二星座日期查询</title><link>https://fukun.org/archives/0108425.html</link><pubDate>Fri, 07 Jan 2011 16:27:06 +0800</pubDate><guid>https://fukun.org/archives/0108425.html</guid><description>&lt;p&gt;12星座对应出生日期 十二星座的日期 十二星座日期表 十二星座日期查询　:&lt;/p&gt;
&lt;p&gt;　    白羊座Aries(3.21-4.19)&lt;/p&gt;
&lt;p&gt;　　金牛座Taurus(4.20-5.19)&lt;/p&gt;
&lt;p&gt;　　双子座Gemini(5.20-6.20)&lt;/p&gt;
&lt;p&gt;　　巨蟹座Cancer(6.21-7.21)&lt;/p&gt;
&lt;p&gt;　　狮子座Leo(7.22-8.22)&lt;/p&gt;
&lt;p&gt;　　处女座Virgo(8.23-9.21)&lt;/p&gt;
&lt;p&gt;　　天秤座Libra(9.22-10.22)&lt;/p&gt;
&lt;p&gt;　　天蝎座Scorpio(10.23-11.21)&lt;/p&gt;
&lt;p&gt;　　射手座Sagittarius(11.22-12.20)&lt;/p&gt;
&lt;p&gt;　　摩羯座Capricorn(12.21-1.19)&lt;/p&gt;
&lt;p&gt;　　水瓶座Aquarius(1.20-2.18)&lt;/p&gt;
&lt;p&gt;　　双鱼座Pisces(2.19-3.20)&lt;/p&gt;</description></item><item><title>娱乐娱乐—QQR2</title><link>https://fukun.org/archives/0107417.html</link><pubDate>Fri, 07 Jan 2011 15:36:32 +0800</pubDate><guid>https://fukun.org/archives/0107417.html</guid><description>&lt;p&gt;最近几天闲来无事，不知道干嘛，想听听歌，又不知道该听什么歌，昨天就把QQ音速下载下来了，里面还是有些歌不错的，今天没事就玩玩。&lt;/p&gt;
&lt;p&gt;不过实在是老啦，好长时间不玩了，玩了10多局，就一局完成的。。。。。&lt;/p&gt;
&lt;div id="attachment_419" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/01/20110107_220458.jpg"&gt;&lt;img class="size-medium wp-image-419" title="20110107_220458" src="//fukun.org/wp-content/uploads/2011/01/20110107_220458-300x225.jpg" alt="QQR2" width="300" height="225" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 QQR2
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Windows 8首个官方版本曝光</title><link>https://fukun.org/archives/0107411.html</link><pubDate>Fri, 07 Jan 2011 01:27:27 +0800</pubDate><guid>https://fukun.org/archives/0107411.html</guid><description>&lt;p&gt;在微软首席执行官史蒂夫·鲍尔默发表主题演讲之前，微软Windows部门主管Steven Sinofsky先为大家奉上了大餐前的开胃菜，演示了下一代Windows系统在ARM架构上的运行，并且宣布了微软新一代桌面电脑Surface 2.0。&lt;/p&gt;
&lt;p&gt;尽管这是Windows 8首次官方露面，不过依然是犹抱琵琶半遮面。由于&lt;strong&gt;Windows 8仍处在早期开发阶段&lt;/strong&gt;，所以Sinofsky并没有就其新功能做更多的阐述，亦或是要等到鲍尔默在晚些时候为大家揭晓。总之，从简单的演示中，我们可以看到，&lt;strong&gt;Windows 8的用户界面与Windows 7并没有明显变化&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>asp –access中如何插入日期型数据</title><link>https://fukun.org/archives/0106402.html</link><pubDate>Thu, 06 Jan 2011 15:48:04 +0800</pubDate><guid>https://fukun.org/archives/0106402.html</guid><description>&lt;p&gt;在对一个access表进行update时，总是提示数据类型不匹配(&lt;span style="color: #0000ff;"&gt;ODBC Microsoft Access Driver 标准表达式中数据类型不匹配&lt;/span&gt;)。代码如下图：&lt;/p&gt;
&lt;div id="attachment_403" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/01/asp_access_time1.jpg"&gt;&lt;img class="size-full wp-image-403 " title="asp --access中如何插入日期型数据" src="//fukun.org/wp-content/uploads/2011/01/asp_access_time1.jpg" alt="asp --access中如何插入日期型数据" width="600" height="112" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 asp --access中如何插入日期型数据
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>77元房租百姓为何不信</title><link>https://fukun.org/archives/0105399.html</link><pubDate>Wed, 05 Jan 2011 03:04:01 +0800</pubDate><guid>https://fukun.org/archives/0105399.html</guid><description>&lt;p&gt;来自：长江日报-黎明&lt;/p&gt;
&lt;p&gt;针对最近引人关注的公共事件，我曾写过一篇《最难应对的是不相信》的文章，提出了一个概念叫“国民不相信运动”，指出在诸多涉官、涉权、“涉数”的舆论热点或公共事件的背后，有这样一个“公式”：不信，不信，就是不信。&lt;/p&gt;
&lt;p&gt;这得到一些网友的认同，其间，多次出现了“老百姓成了老不信”这句话。开始我还以为这话是我的文章引出来的，看到“猫眼看人”的一篇题目叫作《你让老百姓变成了“老不信”》的网文，发文时间比我文还早一点，方知“老不信”的创意和我没有关联。但这种“雷同”现象说明：客观现象作用于人脑，大家同时思考同样的问题，发生相同、相似的感受，并提交类似的思索结果，而较准确集中、归纳了公众感受的新词汇和新生流行语，则会迅速引爆大家的共鸣。&lt;/p&gt;</description></item><item><title>如何给Android应用程序签名</title><link>https://fukun.org/archives/0104395.html</link><pubDate>Tue, 04 Jan 2011 08:40:51 +0800</pubDate><guid>https://fukun.org/archives/0104395.html</guid><description>&lt;p&gt;Android系统要求所有的程序经过数字签名才能安装，如果没有可用的数字签名，系统将不许安装运行此程序。不管是模拟器还是真实手机。因此，在设备或者是模拟器上运行调试程序之前，必须为应用程序设置数字签名。&lt;/p&gt;
&lt;p&gt;·所有的程序都必须签名，没有被签名的程序，系统将不能安装。&lt;/p&gt;
&lt;p&gt;·可使用自签署证书签署应用程序，无须授权凭证。&lt;/p&gt;
&lt;p&gt;·系统仅仅会在安装的时候测试签名证书的有效期，如果应用程序的签名是在安装之后才到期，那么应用程序仍然可以正常启用。&lt;/p&gt;</description></item><item><title>ASP –HTTP 错误 405 – 禁止访问资源 的解决办法</title><link>https://fukun.org/archives/0103389.html</link><pubDate>Mon, 03 Jan 2011 12:53:21 +0800</pubDate><guid>https://fukun.org/archives/0103389.html</guid><description>&lt;div id="attachment_390" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/01/http-error-405.png"&gt;&lt;img class="size-medium wp-image-390" title="HTTP 错误 405 - 禁止访问资源" src="//fukun.org/wp-content/uploads/2011/01/http-error-405-300x292.png" alt="HTTP 错误 405 - 禁止访问资源" width="300" height="292" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 HTTP 错误 405 - 禁止访问资源
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;本地调试IIS时,在提交页面信息出现:&lt;span style="color: #ff0000;"&gt;HTTP 错误 405 – 禁止访问资源 的解决办法&lt;/span&gt;!&lt;/p&gt;</description></item><item><title>Asp –Response.Buffer介绍</title><link>https://fukun.org/archives/0102385.html</link><pubDate>Sun, 02 Jan 2011 13:21:40 +0800</pubDate><guid>https://fukun.org/archives/0102385.html</guid><description>&lt;p&gt;当Buffer为True的时候,asp会将这个程序解释完毕后一起发送到客户端,当Buffer为False的时候,asp会边解析边发送数据.&lt;/p&gt;
&lt;p&gt;实例:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;%@LANGUAGE=”JAVASCRIPT” CODEPAGE=”65001″%&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;%&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Response.Charset = “utf-8” ;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Response.Buffer = “False”;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;%&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;%&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Response.Write(“开始执行&lt;br /&gt;”);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;for(var i = 1; i &amp;lt; 100; i++){&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;for(var u = 1 ;u &amp;lt;1000;u++){&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Response.Write(i+”&lt;br /&gt;”);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Response.Write(“结束”);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;%&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;会在浏览器中动态的从1输出到100,有趣&lt;/p&gt;
&lt;p&gt;如果将Response.Buffer = “False”改为Response.Buffer = “True”则会解析完毕再输出,即输出一个含有1到100的数字的网页&lt;/p&gt;</description></item><item><title>asp –ghost xp的iis安装(包括sp3) 以及一些问题的排除方法</title><link>https://fukun.org/archives/0101364.html</link><pubDate>Sat, 01 Jan 2011 14:56:39 +0800</pubDate><guid>https://fukun.org/archives/0101364.html</guid><description>&lt;p&gt;1、控制面板里没有“-&amp;gt;添加/删除Windows组件-&amp;gt;Internet信息服务（IIS）”组件的添加方法。&lt;/p&gt;
&lt;p&gt;(某些GHOST系统精简后没有此项)&lt;/p&gt;
&lt;p&gt;把IIS列进系统组件并安装。先到网上下载iis5.安装包，解压到D盘的根目录下（最好是根目录，便于后面打命令）把目录名该为iis51&lt;/p&gt;
&lt;p&gt;首先在“开始”菜单的“运行”中输入“c:Windowsinfsysoc.inf”，在sysoc.inf中找到“[Components]”这一段，在里面加上这段：“iis=iis2.dll,OcEntry,iis2.inf,,7”,之后保存并关闭。&lt;/p&gt;</description></item><item><title>小技巧 右键添加 CMD 命令提示符</title><link>https://fukun.org/archives/0101362.html</link><pubDate>Sat, 01 Jan 2011 14:53:58 +0800</pubDate><guid>https://fukun.org/archives/0101362.html</guid><description>&lt;div id="blogDetailDiv"&gt;
 通过修改注册表来达到目的。&lt;br /&gt; 1、打开注册表编辑器，打到[HKEY_CLASSES_ROOTFoldershell]子键，在其下面新建名为“命令提示符”的 项，再在这个项下面新建名为&amp;#8221;Command&amp;#8221;的 项。&lt;/p&gt; 
 &lt;p&gt;
 2、选择&amp;#8221;command&amp;#8221;项，把“默认”字符窜值的数据设为“C:windowssystem32cmd.exe cd &amp;#8220;%l&amp;#8221;”,然后确定。
 &lt;/p&gt;
 &lt;p&gt;
 这样任意目录甚至盘符的右键菜单中都增加了一项“命令提示符”。
 &lt;/p&gt;
 &lt;p&gt;
 比从cmd直接敲到目录要方便的多了&amp;#8230;&amp;#8230;
 &lt;/p&gt;
 &lt;p&gt;
 当然，那个“命令提示符”也可以改成自己想右键时在右键菜单上显示的字幕。。 可以DIY啦。嘿嘿。·~~~~
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>mysql –导入导出.sql格式文件:mysqldump,mysql.exe</title><link>https://fukun.org/archives/0101359.html</link><pubDate>Sat, 01 Jan 2011 14:51:24 +0800</pubDate><guid>https://fukun.org/archives/0101359.html</guid><description>&lt;p&gt;先在mysql中create database databasename;创建出需要导入的数据库名。&lt;/p&gt;
&lt;p&gt;再在MYSQL安装目录/BIN 目录下用下面命令：&lt;/p&gt;
&lt;p&gt;mysql -u username -p databasename &amp;lt; XXX.sql （-u和username之间的空格是不需要的）&lt;/p&gt;
&lt;p&gt;其中username 为mysql用户名，一般为root；&lt;/p&gt;
&lt;p&gt;databasename为你要导入数据的目标数据库名字；&lt;/p&gt;
&lt;p&gt;XXX.sql为你现在的小于5M的sql文件 存放的目录；如c:/aaa/bbb.sql&lt;/p&gt;</description></item><item><title>Linux -RPM 用法</title><link>https://fukun.org/archives/0101357.html</link><pubDate>Sat, 01 Jan 2011 14:48:15 +0800</pubDate><guid>https://fukun.org/archives/0101357.html</guid><description>&lt;p&gt;在Linux操作系统中，有一个系统软件包，它的功能类似于Windows里面的“添加/删除程序”，但是功能又比“添加/删除程序”强很多，它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的，后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间，所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法。&lt;/p&gt;
&lt;p&gt;1.我们得到一个新软件，在安装之前，一般都要先查看一下这个软件包里有什么内容，假设这个文件是：Linux-1.4-6.i368.rpm，我们可以用这条命令查看：&lt;/p&gt;
&lt;p&gt;rpm -qpi Linux-1.4-6.i368.rpm&lt;/p&gt;</description></item><item><title>linux -tar用法详解</title><link>https://fukun.org/archives/0101353.html</link><pubDate>Sat, 01 Jan 2011 14:45:11 +0800</pubDate><guid>https://fukun.org/archives/0101353.html</guid><description>&lt;div id="blogDetailDiv"&gt;
 因为 tar 非常的有用，而且在备份以外还有很多其他的功用，所以我们在这里对它进行一些注释。更详细的介绍当然是参看手册 (man tar)。&lt;/p&gt; 
 &lt;p&gt;
 tar 是一个归档程序，就是说 tar 可以把许多文件联合包装成一个大的文件或者把它们写入一个备份设备，例如一个磁带驱动器。当您生成了这么一个大文件后，您会想要对它进行压缩，-z 选项是专门作这个的。因此，tar 提供了一个非常好的在互联网上发布程序或软件的方法。您会发现 Linux 界里，这个方法被广泛的采用。
 &lt;/p&gt;
 &lt;p&gt;
 这是一个 tar 命令行的例子：&lt;br /&gt; tar -zcvf myfiles.tar.gz /usr/local/bin
 &lt;/p&gt;
 &lt;p&gt;
 让我们分析一下这行命令的具体意思：
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>PHP mysql_fetch_assoc() 函数</title><link>https://fukun.org/archives/1231348.html</link><pubDate>Fri, 31 Dec 2010 07:39:06 +0800</pubDate><guid>https://fukun.org/archives/1231348.html</guid><description>&lt;p&gt;定义和用法&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #0000ff;"&gt;&lt;strong&gt;mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。不再包含数字索引&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;返回根据从结果集取得的行生成的关联数组，如果没有更多行，则返回 false。&lt;/p&gt;
&lt;p&gt;语法&lt;/p&gt;
&lt;p&gt;mysql_fetch_assoc(data)参数 描述&lt;/p&gt;
&lt;p&gt;data 必需。要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。&lt;/p&gt;
&lt;p&gt;提示和注释&lt;/p&gt;</description></item><item><title>AJAX readyState的五种状态及其含义</title><link>https://fukun.org/archives/1230346.html</link><pubDate>Thu, 30 Dec 2010 15:46:29 +0800</pubDate><guid>https://fukun.org/archives/1230346.html</guid><description>&lt;p&gt;AJAX readyState的五种状态及其含义:&lt;/p&gt;
&lt;p&gt;0: (Uninitialized) the send( ) method has not yet been invoked.&lt;/p&gt;
&lt;p&gt;1: (Loading) the send( ) method has been invoked, request in progress.&lt;/p&gt;
&lt;p&gt;2: (Loaded) the send( ) method has completed, entire response received.&lt;/p&gt;
&lt;p&gt;3: (Interactive) the response is being parsed.&lt;/p&gt;
&lt;p&gt;4: (Completed) the response has been parsed, is ready for harvesting.&lt;/p&gt;
&lt;p&gt;0 － （未初始化）还没有调用send()方法&lt;/p&gt;
&lt;p&gt;1 － （载入）已调用send()方法，正在发送请求&lt;/p&gt;
&lt;p&gt;2 － （载入完成）send()方法执行完成，已经接收到全部响应内容&lt;/p&gt;
&lt;p&gt;3 － （交互）正在解析响应内容&lt;/p&gt;
&lt;p&gt;4 － （完成）响应内容解析完成，可以在客户端调用了&lt;/p&gt;</description></item><item><title>全文操作运行失败。查询子句只包含被忽略的词.noise.chs 这是一个只读文档</title><link>https://fukun.org/archives/1230343.html</link><pubDate>Thu, 30 Dec 2010 10:39:29 +0800</pubDate><guid>https://fukun.org/archives/1230343.html</guid><description>&lt;p&gt;sql server 2000 全文检索中遇到问题：&lt;/p&gt;
&lt;p&gt;错误一、&lt;span style="color: #0000ff;"&gt;全文操作运行失败。查询子句只包含被忽略的词。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这是由于在MssqlFtdataSqlserverConfig 中提供了多种语言的干扰词列表,在安装带有全文检索支持的 Microsoft SQL Server 时会创建这个目录，并同时安装干扰词文件。干扰词文件可以编辑。&lt;/p&gt;</description></item><item><title>独立轻量级模式对话框控件TinyBox-美化页面效果</title><link>https://fukun.org/archives/1230339.html</link><pubDate>Thu, 30 Dec 2010 07:19:06 +0800</pubDate><guid>https://fukun.org/archives/1230339.html</guid><description>&lt;p&gt;TinyBox是一个轻量级（3.5kb）模式对话框控件，没有依赖于任何javascript框架，不必使用Jquery等任何javascript框架。它可以展示任意Ajax或HTML内容包括文本，图片，视频等。模式窗体能够以淡入/淡出的效果弹出和关闭并且能依据所加载的内容动态调整窗体大小。TinyBox还支持按设定的时间自动消失。&lt;/p&gt;
&lt;p&gt;它是一个轻量级并且独立的模态窗口脚本，只有 3.5KB，不包括任何内置的幻灯片功能，但是可以显示任何的 AJAX 和 HTML 内容，还支持图片，并且能够自动隐藏，可以通过简单的 CSS 来定制样式的效果。TinyBox 已经在 Firefox 2/3, IE 6/7/8, Opera, Safari 和 Chrome 中测试过。使用 TinyBox 非常简单，通过以下代码即可：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;TINY.box.show(‘showcontent.php?id=2’,1,300,150,1,3)&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>偶得</title><link>https://fukun.org/archives/1229337.html</link><pubDate>Wed, 29 Dec 2010 15:34:28 +0800</pubDate><guid>https://fukun.org/archives/1229337.html</guid><description>&lt;div id="blogDetailDiv"&gt;
 Happy the man, and happy he alone,&lt;br /&gt; he who can call today his own,&lt;br /&gt; he who, secure within, can say,&lt;br /&gt; &lt;span style="color: #0000ff;"&gt;Tomorrow do thy worst, for I have lived today.&lt;/span&gt;&lt;/p&gt; 
 &lt;p&gt;
 Be fair or foul, or rain or shine&lt;br /&gt; the joys I have possessed, in spite of fate, are mine.&lt;br /&gt; Not Heaven itself, upon the past has power,&lt;br /&gt; but what has been, has been, and I have had my hour.
 &lt;/p&gt;</description></item><item><title>apache log错误client denied by server configuration</title><link>https://fukun.org/archives/1228335.html</link><pubDate>Tue, 28 Dec 2010 10:17:36 +0800</pubDate><guid>https://fukun.org/archives/1228335.html</guid><description>&lt;p&gt;关键词：      client denied by server configuration。&lt;/p&gt;
&lt;p&gt;表象：          访问页面时被提示没有权限。 &lt;/p&gt;
&lt;p&gt;解释：         &lt;/p&gt;
&lt;p&gt;第一，   首先检查httpd.conf配置Alias的配置，&lt;/p&gt;
&lt;p&gt;看看Alias设置的路径是否正确，&lt;/p&gt;
&lt;p&gt;Alias /subsite    d:/www/likechi/&lt;/p&gt;</description></item><item><title>Invalid command ‘RewriteEngine’错误的解决办法</title><link>https://fukun.org/archives/1227333.html</link><pubDate>Mon, 27 Dec 2010 14:36:23 +0800</pubDate><guid>https://fukun.org/archives/1227333.html</guid><description>&lt;p&gt;今天部署一个PHP程序的时候，运行错误，看了下apache log，出现了如下的错误：&lt;/p&gt;
&lt;div id="text"&gt;
 &lt;p&gt;
 Invalid command &amp;#8216;RewriteEngine&amp;#8217;, perhaps mis-spelled or defined by a module not included in the server configuration
 &lt;/p&gt;
 &lt;p&gt;
 解决办法：
 &lt;/p&gt;
 &lt;p&gt;
 打开httpd.conf ，取消 LoadModule rewrite_module modules/mod_rewrite.so前的注释
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Apache日志解读,Apache日志每列代表什么?</title><link>https://fukun.org/archives/1227328.html</link><pubDate>Mon, 27 Dec 2010 09:19:24 +0800</pubDate><guid>https://fukun.org/archives/1227328.html</guid><description>&lt;p&gt;Apche日志系列(1)：访问日志&lt;/p&gt;
&lt;p&gt;想要知道什么人在什么时候浏览了网站的哪些内容吗？查看Apache的访问日志就可以知道。访问日志是Apache的标准日志，本文详细解释了访问日志的内容以及相关选项的配置。&lt;/p&gt;
&lt;p&gt;一、访问日志的格式&lt;/p&gt;
&lt;p&gt;Apache内建了记录服务器活动的功能，这就是它的日志功能。这个《Apache日志》系列文章介绍的就是Apache的访问日志、错误日志，以及如何分析日志数据，如何定制Apache日志，如何从日志数据生成统计报表等内容。&lt;/p&gt;
&lt;p&gt;如果Apache的安装方式是默认安装，服务器一运行就会有两个日志文件生成。这两个文件是access_log（在Windows上是 access.log）和error_log（在Windows上是error.log）。采用默认安装方式时，这些文件可以在/usr/local /apache/logs下找到；对于Windows系统，这些日志文件将保存在Apache安装目录的logs子目录。不同的包管理器会把日志文件放到 各种不同的位置，所以你可能需要找找其他的地方，或者通过配置文件查看这些日志文件配置到了什么地方。&lt;/p&gt;</description></item><item><title>Tomcat 5.5.26 Administration Tool HTTP Status 500 解决前后</title><link>https://fukun.org/archives/1226324.html</link><pubDate>Sun, 26 Dec 2010 13:58:25 +0800</pubDate><guid>https://fukun.org/archives/1226324.html</guid><description>&lt;p&gt;闲话少说，如果您也在使用 Tomcat 5.5.26 Administration Tool 的 Delete Existing Hosts 功能时遇到如下问题，本文至少能提供一种有效的解决方法（贴上错误信息文本，一是给搜索引擎预备的，二来也帮助您确认一下本文是否对症）。&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="http://p.blog.csdn.net/images/p_blog_csdn_net/LaoBai_2006/EntryImages/20080828/DeleteExistingHosts.png" target="_blank"&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://p.blog.csdn.net/images/p_blog_csdn_net/LaoBai_2006/EntryImages/20080828/DeleteExistingHostsThumb.png" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div id="attachment_325" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/12/tomcat-admin-tools-http-500.png"&gt;&lt;img class="size-full wp-image-325" title="tomcat-admin-tools-http-500" src="//fukun.org/wp-content/uploads/2010/12/tomcat-admin-tools-http-500.png" alt="tomcat-admin-tools-http-500" width="300" height="185" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 tomcat-admin-tools-http-500
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>解决“没有权限访问组策略”的问题</title><link>https://fukun.org/archives/1225321.html</link><pubDate>Sat, 25 Dec 2010 09:09:03 +0800</pubDate><guid>https://fukun.org/archives/1225321.html</guid><description>&lt;p&gt;       在打开组策略的时候被提示“ 组策略错误，您没有权限执行此操作，拒绝访问”，组策略打不开。&lt;/p&gt;
&lt;p&gt;    在解决过程中，发现有很多错误都能导致没有权限访问组策路，但与此同时其他相似msc文件也是没有权限访问的，但在我的电脑上只有组策略没有权限访问，其他都能正常地访问。可见组策路无法被访问可能是gpedit.msc文件在当前用户下没有读写权限，或者是组策略访问的文件在当前用户下没有读取权限。从这个方向考虑，首先gpedit.msc本身在当前用户下具有读写权限，那么就出在读取文件权限的问题上，果真如此。在组策略运行起来之间，她要访问C:windowssystem32GroupPolicy目录下的配置文件，可这个目录下的所有文件在当前用户下都没有权限，运行如下命令可以得到上面那个结论：&lt;/p&gt;</description></item><item><title>用PS批量处理图片大小 PS动作批处理图片</title><link>https://fukun.org/archives/1224315.html</link><pubDate>Fri, 24 Dec 2010 10:13:01 +0800</pubDate><guid>https://fukun.org/archives/1224315.html</guid><description>&lt;p&gt;如果想把批量图片迅速处理成一定大小，一张一张的处理是非常费时费功夫的，怎么办？有个工具是可以批量转化的，也非常方便，不过仅限于jpg和bmp格式，如果有朋友需要可以&lt;a href="mailto:kiqq2003@163.com" target="_blank"&gt;Mail&lt;/a&gt;我，我发给你，如果是PNG格式的或者其它格式，这个小工具就无能为力了，这里介绍一个好办法：用Photoshop的动作命令和批处理命令就可轻松搞定，无论是什么格式，只要是ps能处理的，就可以批量处理。以下以PS CS4为例。&lt;/p&gt;
&lt;p&gt;这要用到“动作”和“批处理”。&lt;/p&gt;
&lt;p&gt;首先要把你所要处理的图片全部放到同一个文件夹下。&lt;/p&gt;</description></item><item><title>asp.net实现php,UNIX 时间戳,转换时间为时间戳</title><link>https://fukun.org/archives/1223310.html</link><pubDate>Thu, 23 Dec 2010 05:50:49 +0800</pubDate><guid>https://fukun.org/archives/1223310.html</guid><description>&lt;p&gt;今天在做一个接口的时候，需要在asp.net下输出一个时间戳，而数据库中存储的是时间格式，所以需要在asp.net下把时间格式转化为时间戳格式。&lt;/p&gt;
&lt;p&gt;asp.net实现php,UNIX 时间戳,转换时间为时间戳,非常简单，以下是转化当前时间为时间戳，直接拿去用就即可。&lt;/p&gt;
&lt;p&gt;如果需要转化已知的时间，把dtNow赋值为已给的时间就好了。&lt;/p&gt;
&lt;p&gt;  //1 将系统时间转换成UNIX时间戳&lt;/p&gt;
&lt;p&gt;  &lt;/p&gt;</description></item><item><title>2010年12月22日-冬至-eoeandroid开发者大会</title><link>https://fukun.org/archives/1222306.html</link><pubDate>Wed, 22 Dec 2010 12:35:13 +0800</pubDate><guid>https://fukun.org/archives/1222306.html</guid><description>&lt;p&gt;  今天去参加了一个android的峰会，目的就是了解了解目前移动终端的发展前景。还有一个任务就是去了多交换交换名片，多获得一些开发者的联系方式，以后若是工作需要了，可以直接联系。因为自己的名片还没印出来，所以就拿的同事的~&lt;/p&gt;
&lt;p&gt;   总的来说还是有些收获的，eoeandroid从社区转型到了门户，并且出了自己的SDK，很有前景啊&lt;del&gt;不过后来通过会议的一些演讲，也让我更加明确的清楚了，目前android还很混乱，还是没有一个比较统一的标准&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;  有一个很有意思的事就是，本来是打算去参加另一个android的会议的，不过临出门的时候，因为需要，就换到了这个场，看了一下他们的会议日程，居然发现没有留出空闲的时间来，也就是说，根本就没有时间换名片，.他们用了一个新浪的微博墙，于是我就刷了两条微博，求换名片，结果两条都出现在了墙上，哈哈，不错。很给力~~&lt;/p&gt;
&lt;div style="width: 500px" class="wp-caption aligncenter"&gt;
 &lt;img title="eoe-android-上墙" src="http://ww3.sinaimg.cn/bmiddle/6973add9jw6dclnlpv7ycj.jpg" alt="eoe-android-上墙" width="490" height="367" /&gt;
 &lt;p class="wp-caption-text"&gt;
 eoe-android-上墙
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>设置Editplus支持Lua语法高亮,函数模版支持,不包含某个字符串的正则表达式</title><link>https://fukun.org/archives/1221300.html</link><pubDate>Tue, 21 Dec 2010 02:23:43 +0800</pubDate><guid>https://fukun.org/archives/1221300.html</guid><description>&lt;p&gt;首先是语法高亮。下载最新的语法高亮文件：&lt;a href="http://www.editplus.com/files/lua51.zip"&gt;http://www.editplus.com/files/lua51.zip&lt;/a&gt; 把这个中的文件lua51.stx解开放到放到Editplus安装目录C:Program FilesEditPlus 2下。打开editplus，[工具]-[配置用户工具]-[语法]，[添加]，描述那里写lua，文件扩展名lua，语法文件就是lua51.stx的完整路径：C:Program FilesEditPlus 2lua51.stx。自动完成一般不用，可以留空。&lt;/p&gt;</description></item><item><title>Asp调用存储过程,command.CreateParameter 参数值的类型说明</title><link>https://fukun.org/archives/1220297.html</link><pubDate>Mon, 20 Dec 2010 05:24:26 +0800</pubDate><guid>https://fukun.org/archives/1220297.html</guid><description>&lt;p&gt;Asp调用各种存储过程，包括带参数，无参数，输入输出参数，带返回值等。&lt;/p&gt;
&lt;p&gt;1，调用没有参数的存储过程&lt;/p&gt;
&lt;p&gt;&amp;lt;%&lt;/p&gt;
&lt;p&gt;set conn=server.CreateObject(“adodb.connection”)&lt;/p&gt;
&lt;p&gt;set cmd=server.CreateObject(“adodb.command”)&lt;/p&gt;
&lt;p&gt;strconn=”dsn=pubs;uid=sa;pwd”&lt;/p&gt;
&lt;p&gt;conn.Open strconn&lt;/p&gt;
&lt;p&gt;set cmd.ActiveConnection=conn&lt;/p&gt;
&lt;p&gt;cmd.CommandText=”{call nono}”&lt;/p&gt;
&lt;p&gt;‘set rs=cmc.exe 或者cmd.execute&lt;/p&gt;
&lt;p&gt;set rs=cmd.Execute()&lt;/p&gt;
&lt;p&gt;%&amp;gt;&lt;/p&gt;</description></item><item><title>err.number -2147217900错误,SQL数据库 ‘XXX’ 的日志已满。请备份该数据库的事务日志以释放一些日志空间</title><link>https://fukun.org/archives/1220294.html</link><pubDate>Mon, 20 Dec 2010 02:10:26 +0800</pubDate><guid>https://fukun.org/archives/1220294.html</guid><description>&lt;p&gt;今天一早，一到公司，被同事告知内部的一个数据库系统发生了问题，更新数据的时候提示失败。&lt;/p&gt;
&lt;p&gt;于是开始着手处理，先是找到发生错误的地方，使用输出语句输出了错误&lt;span style="color: #0000ff;"&gt;Err.number&lt;/span&gt;，错误代码为&lt;span style="color: #0000ff;"&gt;-2147217900&lt;/span&gt;,然后又输出了发生错误的SQL语句，复制到查询分析器中执行，被告知错误为：&lt;span style="color: #0000ff;"&gt;数据库 ‘XXX’ 的日志已满。请备份该数据库的事务日志以释放一些日志空间。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;原来是事务日志已满。&lt;/p&gt;
&lt;p&gt;解决办法：&lt;/p&gt;</description></item><item><title>linux下基于snort的入侵检测系统之建立snort服务器</title><link>https://fukun.org/archives/1219289.html</link><pubDate>Sun, 19 Dec 2010 11:23:26 +0800</pubDate><guid>https://fukun.org/archives/1219289.html</guid><description>&lt;p&gt;2009年04月05日 21:40&lt;/p&gt;
&lt;p&gt;此次构建大部分基本全部都是参考的 Intrusion Detection with snort（Snort入侵检测使用解决方案）。&lt;/p&gt;
&lt;p&gt;  我是在系统构建了一部分之后才加入的，因为清明节有3天假期，而老师又不会来上班，所以老师把他做了一部分的内容交给我了，让我做剩下的部分，所以我就把前面我没接触的部分按原教程copy些精华下来就好了。&lt;/p&gt;
&lt;p&gt;建立snort服务器&lt;/p&gt;
&lt;p&gt;一、linux安装&lt;/p&gt;
&lt;p&gt;（1）IP地址 RFC1918私网IP&lt;/p&gt;
&lt;p&gt;（2）无防火墙&lt;/p&gt;
&lt;p&gt;（3）时区 通用协议调时间(UTC)偏移；系统时钟使用UTC。&lt;/p&gt;
&lt;p&gt;（4）账号&lt;/p&gt;</description></item><item><title>英语之夜</title><link>https://fukun.org/archives/1218286.html</link><pubDate>Sat, 18 Dec 2010 14:50:52 +0800</pubDate><guid>https://fukun.org/archives/1218286.html</guid><description>&lt;p&gt;今天去西直门成铭大厦的梦坊(Dream Weaver)听了在团购网上团的一个英语课程，感觉还不错~~~&lt;/p&gt;
&lt;p&gt;是个11个人的小班，课程分两个部分，前一个小时是一名英语外教，名叫Gray Sanders~~，主要是讲解了一个小时的美国风俗，与人沟通交流时应注意的问题，自我感觉还不错，听懂了大概80%吧~~~，本来想给这个老外拍个照片的，不过正打算要拍呢，这个老外讲到了Respect，讲到了人与人之间的互相尊重&lt;del&gt;汗一个，我也不敢照了，人家正讲课呢，我举起个手机来拍照，多不Respect人家啊&lt;/del&gt;&lt;/p&gt;</description></item><item><title>Asp中替换掉HTML标签的函数，ASP使用正则表达式取消HTML标签的函数</title><link>https://fukun.org/archives/1217283.html</link><pubDate>Fri, 17 Dec 2010 01:55:38 +0800</pubDate><guid>https://fukun.org/archives/1217283.html</guid><description>&lt;p&gt;Asp中替换掉HTML标签的函数，ASP使用正则表达式取消HTML标签的函数（大家直接拿去用吧~）:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Function RemoveHTML(strText)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Dim RegEx&lt;/p&gt;
&lt;p&gt;Set RegEx = New RegExp&lt;/p&gt;
&lt;p&gt;RegEx.Pattern = “&amp;lt;[^&amp;gt;]*&amp;gt;”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;RegEx.Global = True&lt;/p&gt;
&lt;p&gt;RemoveHTML = RegEx.Replace(strText, “”)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;End Function&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>document.body.scrollTop 的值总是等于 0 的解决方法;DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN 与 JS冲突</title><link>https://fukun.org/archives/1216279.html</link><pubDate>Thu, 16 Dec 2010 14:19:44 +0800</pubDate><guid>https://fukun.org/archives/1216279.html</guid><description>&lt;p&gt;做页面的时候可能会用到浮动层，读取 document.body.scrollTop 来设置层的位置，如以下代码，可以达到让一个ID为“Div1”的层一直居中显示的目的：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;script&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;language&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;javascript&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;function&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Sc&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; document.&lt;span style="color:#a6e22e"&gt;getElementById&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Div1&amp;#34;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;top&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;document.&lt;span style="color:#a6e22e"&gt;body&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;scrollTop&lt;/span&gt;&lt;span style="color:#f92672"&gt;+&lt;/span&gt;(document.&lt;span style="color:#a6e22e"&gt;body&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;clientHeight&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;document.&lt;span style="color:#a6e22e"&gt;getElementById&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Div1&amp;#34;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;offsetHeight&lt;/span&gt;)&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; document.&lt;span style="color:#a6e22e"&gt;getElementById&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Div1&amp;#34;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;style&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;left&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;document.&lt;span style="color:#a6e22e"&gt;body&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;scrollLeft&lt;/span&gt;&lt;span style="color:#f92672"&gt;+&lt;/span&gt;(document.&lt;span style="color:#a6e22e"&gt;body&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;clientWidth&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;document.&lt;span style="color:#a6e22e"&gt;getElementById&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Div1&amp;#34;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;offsetWidth&lt;/span&gt;)&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;window.&lt;span style="color:#a6e22e"&gt;onscroll&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;Sc&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;window.&lt;span style="color:#a6e22e"&gt;onresize&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;Sc&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;window.&lt;span style="color:#a6e22e"&gt;onload&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;Sc&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>概念混乱关于jdk,j2sdk,j2eesdk,jre</title><link>https://fukun.org/archives/1215275.html</link><pubDate>Wed, 15 Dec 2010 12:06:41 +0800</pubDate><guid>https://fukun.org/archives/1215275.html</guid><description>&lt;p&gt;jdk是java devolop kit — java开发包&lt;/p&gt;
&lt;p&gt;j2sdk是java 2 software devolop kit — java2软件开发包&lt;/p&gt;
&lt;p&gt;实际上jdk和j2sdk是基本同样的。&lt;/p&gt;
&lt;p&gt;j2sdk呢有几个版本对应于java2的几个版本，其中j2ee需要用到开发工具就是J2eesdk了，只不过大部分应用服务器（weblogic jboss等）都内置了j2eesdk。&lt;/p&gt;
&lt;p&gt;当然了，j2sdk标准版是基础，所以要安装先；j2eesdk因为是企业应用嘛，所以是注册后才能下载&lt;/p&gt;</description></item><item><title>Android 模拟器安装Android Market电子市场</title><link>https://fukun.org/archives/1214270.html</link><pubDate>Tue, 14 Dec 2010 09:52:57 +0800</pubDate><guid>https://fukun.org/archives/1214270.html</guid><description>&lt;p&gt;其实很简单：&lt;/p&gt;
&lt;p&gt;首先，下载这个包：   &lt;a title="http://cid-331479048cf34aad.office.live.com/self.aspx/.Public/201009/android^_market.zip" href="http://cid-331479048cf34aad.office.live.com/self.aspx/.Public/201009/android%5E_market.zip" target="_blank"&gt;&lt;a href="http://cid-331479048cf34aad.office.live.com/self.aspx/.Public/201009/android%5E_market.zip"&gt;http://cid-331479048cf34aad.office.live.com/self.aspx/.Public/201009/android^_market.zip&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;然后找到SDK目录：android-sdk-windowstools，在CMD下进到此目录，然后运行安装命令，先安装GoogleServicesFramework.apk，再安装Vending.apk即可，命令分别是adb install GoogleServicesFramework.apk和adb install Vending.apk ;分别运行就好了。&lt;/p&gt;</description></item><item><title>SQL Server建立全文索引–简单描述,不累赘</title><link>https://fukun.org/archives/1214265.html</link><pubDate>Tue, 14 Dec 2010 08:43:30 +0800</pubDate><guid>https://fukun.org/archives/1214265.html</guid><description>&lt;p&gt;需要SQL Server 2000 及其以后的版本才支持~~&lt;/p&gt;
&lt;p&gt;其实非常简单的，不用再额外安装什么插件。&lt;/p&gt;
&lt;p&gt;首先，确认 SQL Server 2000 的全文检索功能可用，最简单的方法就是在企业管理器中，随便打开一个数据库到表，随便选中一个表，右键–查看 “全文索引表”选项是否为灰色，若为灰色，则此功能尚未开启，如已经可选，跳过下步。&lt;/p&gt;
&lt;p&gt;开启全文检索功能：功能的关闭主要是是SQL Server 2000 的全文检索服务关闭了，需要在 我的电脑 上右键—管理—服务，找到 Microsoft Search,右键启动，最好修改其属性，再设置启动类型为自动。然后在查询管理器中 运行 &lt;code&gt;execute sp_fulltext_database 'enable'&lt;/code&gt; ，再去企业管理器中右键查看，就会发现已经可以使用SQL Server 2000 的全文检索了（如果在服务中找不到此服务，就是该服务并未安装，需要安装后再开启）。&lt;/p&gt;</description></item><item><title>c#中判断控件类型</title><link>https://fukun.org/archives/1213263.html</link><pubDate>Mon, 13 Dec 2010 11:44:49 +0800</pubDate><guid>https://fukun.org/archives/1213263.html</guid><description>&lt;p&gt;c#中判断控件类型&lt;/p&gt;
&lt;p&gt;1、可用控件的GetType函数,control.gettype().tostring,输出的类型带命名空间,如system.web.ui.webcontrols.button&lt;/p&gt;
&lt;p&gt;2、也可用TypeName函数，typename(control),输出的类型不带命名空间,如button控件直接输出button类型&lt;/p&gt;
&lt;p&gt;3、If (obj.GetType Is GetType(System.Windows.Forms.CheckBox))&lt;/p&gt;
&lt;p&gt;4、If (obj.GetType == typeof(System.Windows.Forms.CheckBox))&lt;/p&gt;</description></item><item><title>给Solaris打补丁,Solaris免费的补丁包的下载地址</title><link>https://fukun.org/archives/1212260.html</link><pubDate>Sun, 12 Dec 2010 01:39:15 +0800</pubDate><guid>https://fukun.org/archives/1212260.html</guid><description>&lt;p&gt;     又辛辛苦苦研究了一晚上的solaris， 终于在chinaunix上找到了个免费的补丁包的下载地址，下了下来，并成功解压，目前正在安装中，虽然补丁版本才是07年7月的，，。。不过能找到一个免费的补丁合集已经不容易了。。。。&lt;/p&gt;
&lt;p&gt;    开始直接用ftp传的文件，结果unzip的时候说有bytes丢失…然后就用bin模式的ftp重新传了一遍，也不知道为什么mv的命令居然不好使，，只得去图形化界面去把8_Recommended.zip拽到了/VAR/SPOOL/PKG里面，我也不知道放这合适不合适。不过应该是没啥问题的吧~&lt;/p&gt;</description></item><item><title>什么是TRUNK?什么是端口汇聚？</title><link>https://fukun.org/archives/1212254.html</link><pubDate>Sun, 12 Dec 2010 01:32:17 +0800</pubDate><guid>https://fukun.org/archives/1212254.html</guid><description>&lt;p&gt;　　什么是Trunk?　什么是端口汇聚？&lt;/p&gt;
&lt;p&gt;　　TRUNK是端口汇聚的意思，就是通过配置软件的设置，将2个或多个物理端口组合在一起成为一条逻辑的路径从而增加在交换机和网络节点之间的带宽，将属于这几个端口的带宽合并，给端口提供一个几倍于独立端口的独享的高带宽。Trunk是一种封装技术，它是一条点到点的链路，链路的两端可以都是交换机，也可以是交换机和路由器，还可以是主机和交换机或路由器。基于端口汇聚（Trunk）功能，允许交换机与交换机、交换机与路由器、主机与交换机或路由器之间通过两个或多个端口并行连接同时传输以提供更高带宽、更大吞吐量， 大幅度提供整个网络能力。&lt;/p&gt;</description></item><item><title>将Tomcat Admin组件添加到Tomcat[图]</title><link>https://fukun.org/archives/1212250.html</link><pubDate>Sun, 12 Dec 2010 01:26:12 +0800</pubDate><guid>https://fukun.org/archives/1212250.html</guid><description>&lt;p&gt;自从5.5版本以后， admin就不被集成在tomcat中，如果要想使用，必须自己安装。由于Tomcat 6的Admin只包含在源代码中，目前无法单独下载部署，只能用低于6的版本的admin去添加到6的版本中。&lt;/p&gt;
&lt;p&gt;一、下载Tomcat 5的某个版本的admin application：&lt;/p&gt;
&lt;p&gt;我找了下，最新的是这个5.5.27版本的了－－下载地址：&lt;a href="http://apache.justdn.org/tomcat/tomcat-5/v5.5.27/bin/apache-tomcat-5.5.27-admin.zip" target="_blank"&gt;&lt;a href="http://apache.justdn.org/tomcat/tomcat-5/v5.5.27/bin/apache-tomcat-5.5.27-admin.zip"&gt;http://apache.justdn.org/tomcat/tomcat-5/v5.5.27/bin/apache-tomcat-5.5.27-admin.zip&lt;/a&gt;&lt;/a&gt; 其实它下载目录里还有一些别的相关文件，我也下载下来了，却发现并没用&lt;/p&gt;
&lt;p&gt;二、解压apache-tomcat-5.***-admin.zip，将conf文件下的文件夹复制到tomcat的conf文件夹下面，将server文件夹拷贝到Tomcat 6目录下。&lt;/p&gt;
&lt;p&gt;三、下载Apache Commons Modeler，Logging组件，解压后将commons-modeler-XXX.jar、commons-logging-XXX.jar拷贝到Tomcat 6安装目录下的lib目录中。&lt;/p&gt;
&lt;p&gt;1.commons-modeler下载地址：&lt;a href="http://apache.mirror.phpchina.com/commons/modeler/binaries/commons-modeler-2.0.1.zip" target="_blank"&gt;&lt;a href="http://apache.mirror.phpchina.com/commons/modeler/binaries/commons-modeler-2.0.1.zip"&gt;http://apache.mirror.phpchina.com/commons/modeler/binaries/commons-modeler-2.0.1.zip&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.commons-logging下载地址：&lt;a href="http://apache.mirror.phpchina.com/commons/logging/binaries/commons-logging-1.1.zip" target="_blank"&gt;&lt;a href="http://apache.mirror.phpchina.com/commons/logging/binaries/commons-logging-1.1.zip"&gt;http://apache.mirror.phpchina.com/commons/logging/binaries/commons-logging-1.1.zip&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>About solaris /etc/passwd</title><link>https://fukun.org/archives/1211247.html</link><pubDate>Sat, 11 Dec 2010 09:13:18 +0800</pubDate><guid>https://fukun.org/archives/1211247.html</guid><description>&lt;table id="blogContentTable" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
 &lt;td valign="top"&gt;
 &lt;div id="blogContainer"&gt;
 &lt;div&gt;
 如果想远程solaris的话，最好不要用telnet…… &lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; &amp;lt;p&amp;gt;
 因为涉及到一个权限问题，so need 修改/etc/passwd文件中的root的shell。 
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 而，，如果一旦改错了，then ，，，你就root不了了。。 
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 可能的解决办法是进入ok环境，使用boot -s 命令，进入单用户模式，使用 vi /etc/passwd 进入vi环境修改回去。。 
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 
 &amp;lt;div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>天生五音不全的我，在钱柜华丽丽的悲剧了。。。</title><link>https://fukun.org/archives/1210242.html</link><pubDate>Fri, 10 Dec 2010 15:01:26 +0800</pubDate><guid>https://fukun.org/archives/1210242.html</guid><description>&lt;p&gt;天生五音不全的我，在钱柜华丽丽的悲剧了。。。&lt;/p&gt;
&lt;div id="attachment_243" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/12/20101210174.jpg"&gt;&lt;img class="size-medium wp-image-243" title="钱柜币" src="//fukun.org/wp-content/uploads/2010/12/20101210174-300x225.jpg" alt="钱柜币" width="300" height="225" srcset="//fukun.org/wp-content/uploads/2010/12/20101210174-300x225.jpg 300w, //fukun.org/wp-content/uploads/2010/12/20101210174-768x576.jpg 768w, //fukun.org/wp-content/uploads/2010/12/20101210174-1024x768.jpg 1024w, //fukun.org/wp-content/uploads/2010/12/20101210174-1200x900.jpg 1200w, //fukun.org/wp-content/uploads/2010/12/20101210174.jpg 1600w" sizes="(max-width: 300px) 100vw, 300px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 钱柜币
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;这是钱柜的币，虽然里边是有自助餐的，不过某些食物还是要靠这个币才行，麻辣烫一币一份，鱿鱼串两币一份……&lt;/p&gt;
&lt;div id="attachment_244" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/12/20101210175.jpg"&gt;&lt;img class="size-medium wp-image-244" title="钱柜包间部分场景" src="//fukun.org/wp-content/uploads/2010/12/20101210175-300x225.jpg" alt="钱柜包间部分场景" width="300" height="225" srcset="//fukun.org/wp-content/uploads/2010/12/20101210175-300x225.jpg 300w, //fukun.org/wp-content/uploads/2010/12/20101210175-768x576.jpg 768w, //fukun.org/wp-content/uploads/2010/12/20101210175-1024x768.jpg 1024w, //fukun.org/wp-content/uploads/2010/12/20101210175-1200x900.jpg 1200w, //fukun.org/wp-content/uploads/2010/12/20101210175.jpg 1600w" sizes="(max-width: 300px) 100vw, 300px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 钱柜包间部分场景
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;钱柜包间部分场景，可惜我的小5的夜拍能力太差劲了，效果很烂……将来一定要换个Android的手机玩玩~~~~~&lt;/p&gt;</description></item><item><title>PHP 判断FORM来的POST数据是否为整数,转化成整数</title><link>https://fukun.org/archives/1210239.html</link><pubDate>Fri, 10 Dec 2010 07:20:10 +0800</pubDate><guid>https://fukun.org/archives/1210239.html</guid><description>&lt;p&gt;is_int()函数对于FORM过来的POST数据是不能判断是否为整数的，因为FORM过来的是字符串。&lt;/p&gt;
&lt;p&gt;但是用is_numeric可以判断是否为数字类型，只要再动懂脑子就可以用个偷巧的办法，判断是不是整数了。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;if(!is_numeric($postn)||strpos($postn,”.”)!==false){&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;echo “不是整数”;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;}else{&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;echo “是整数”;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;转化成整数：&lt;/p&gt;
&lt;p&gt;使用一个函数即可：&lt;/p&gt;
&lt;p&gt;intval()&lt;/p&gt;</description></item><item><title>php时区设置 time() 差8个小时解决办法</title><link>https://fukun.org/archives/1210236.html</link><pubDate>Fri, 10 Dec 2010 02:17:16 +0800</pubDate><guid>https://fukun.org/archives/1210236.html</guid><description>&lt;p&gt;使用time()函数 取出来的时间总是和本地时间老差8个小时，但系统设置确实已经是中国标准时（GMT+8），经过google,找到了问题原因：&lt;/p&gt;
&lt;p&gt;原来从php5.1.0开始，php.ini里加入了date.timezone这个选项，默认情况下是关闭的，也就是显示的时间（无论用什么php命令）都是格林威治标准时间 和我们的时间（北京时间）差了正好8个小时，有以下2种方法可以恢复正常的时间。&lt;/p&gt;
&lt;p&gt;1、修改php.ini。打开php.ini查找 ;date.timezone = 去掉前面的分号= 后面加上你需要的时区名称，重启http服务（如apache2或iis等）即可.&lt;/p&gt;
&lt;p&gt;2、如果不能修改php.ini，或者说你是在为别人做程序，那么他可能不会修改php.ini，这就需要自己麻烦一下，在需要在关于时间的初始化的语句的上面加上 date_default_timezone_set (时区名称);&lt;/p&gt;
&lt;p&gt;常用的时区名称:&lt;/p&gt;
&lt;p&gt;大陆内地可用的值是：Asia/Chongqing ，Asia/Shanghai ，Asia/Urumqi （依次为重庆，上海，乌鲁木齐）&lt;/p&gt;
&lt;p&gt;港台地区可用：Asia/Macao ，Asia/Hong_Kong ，Asia/Taipei （依次为澳门，香港，台北）&lt;/p&gt;
&lt;p&gt;还有新加坡：Asia/Singapore&lt;/p&gt;
&lt;p&gt;时区名称一定要设置对哦，设置的不是标准名称的话，会再次默认使用格林威治标准时间。&lt;/p&gt;</description></item><item><title>马云面对80后：现在还不是你们的时代</title><link>https://fukun.org/archives/1210233.html</link><pubDate>Fri, 10 Dec 2010 01:35:34 +0800</pubDate><guid>https://fukun.org/archives/1210233.html</guid><description>&lt;p&gt;来自： 《&lt;a href="http://www.ceocio.com.cn/16/55407.htm" target="_blank"&gt;IT经理世界网&lt;/a&gt;》–曾祯&lt;/p&gt;
&lt;div&gt;
 &lt;p&gt;
 6号晚上跑到对外经贸大学参加了优米网主办的“马云和80后面对面”的活动。由于马云的号召 力，开场前2个小时会场门口就已经排起了长龙，年轻人们在寒风中等待着检票入场。凭着媒体身份被安排了比较靠前的座位，终于亲眼见到了传说中的马云。作为 一个比较老的80后，虽然我也经常感到迷惑和茫然，但并不喜欢一些所谓的“青年导师”。不过晚上马云的一些话还是给了我不少触动和启发。
 &lt;/p&gt;
 &lt;p&gt;
 马 云其实没有网上或一些媒体形容的那么ET或者异化。现场看他让我感觉他是很真实的一个人，个子不高，极其消瘦，明黄色的毛衣、黑色便裤、和一双黑色的布 鞋，简简单单，平易近人。据说当天还是带病上场，但是他表现得让人丝毫看不出来他在生病。他说话声音不大，面带微笑，非常自然而放松，喜欢边走边讲。无论 观众是直截了当的质疑还是赤裸裸的崇拜，甚至观众都无法忍受的问题，他都听得很认真，带着淡淡的微笑，并会从朋友、学长的角度耐心地给予回答。他也很幽 默，当时有个学生管他叫“马云叔叔”，马云笑道，“叫我哥”，一下子让大家感觉他就是一个朋友，一位学长。
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>操作系统Solaris 安装–如何安装Solaris</title><link>https://fukun.org/archives/1210230.html</link><pubDate>Fri, 10 Dec 2010 01:12:09 +0800</pubDate><guid>https://fukun.org/archives/1210230.html</guid><description>&lt;p&gt;安装Solaris 前请确认：&lt;/p&gt;
&lt;p&gt;(1) 确认服务器的光驱可用。&lt;/p&gt;
&lt;p&gt;(2) 确定工作站主机名（hostname）：工作站的主机名是一个字符串，例如：ZZNODE-TEST等，这个名字在安装过程中要用到。&lt;/p&gt;
&lt;p&gt;(3) 获得工作站的IP地址和子网掩码：确认服务器所在网段是否属于一个子网，并获得当前服务器的IP地址和子网掩码。如果有网关，还要获得工作站的网关IP地址。这些信息在安装过程中要用到。&lt;/p&gt;
&lt;p&gt;1.打开Sun工作站电源开关，把Solaris8安装光盘Software1of2放进光驱内，出现开机画面时，按下&amp;lt;Stop+A&amp;gt;; 组合键（即按住&lt;Stop&gt;;键的同时再按&lt;A&gt;;键，&lt;Stop&gt;;键位于Sun键盘的左上方），出现“OK”提 示符后，输入“boot&lt;/p&gt;
&lt;p&gt;cdrom”并回车，系统将从光驱启动进行Solaris8操作系统的安装。&lt;/p&gt;</description></item><item><title>solaris开启ssh远程连接</title><link>https://fukun.org/archives/1209228.html</link><pubDate>Thu, 09 Dec 2010 01:25:19 +0800</pubDate><guid>https://fukun.org/archives/1209228.html</guid><description>&lt;p&gt;Solaris 10和后续版本为了保护系统安全，缺省只提供ssh服务，而且还不允许root用户直接登录，这对于开发和调试系统的使用用户来说很不方便。在Solaris 10上开放telnet服务并允许root用户登录的方法如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开telnet服务&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;# svcadm enable telnet&lt;/p&gt;
&lt;p&gt;svcadm是Solaris下最新的网络服务管理系统。&lt;/p&gt;</description></item><item><title>vi/vim命令使用说明,使用教程</title><link>https://fukun.org/archives/1208223.html</link><pubDate>Wed, 08 Dec 2010 13:19:54 +0800</pubDate><guid>https://fukun.org/archives/1208223.html</guid><description>&lt;div id="attachment_224" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/12/vivim.jpg"&gt;&lt;img class="size-medium wp-image-224" title="vi-vim 命令使用说明-使用教程" src="//fukun.org/wp-content/uploads/2010/12/vivim-300x211.jpg" alt="vi-vim 命令使用说明-使用教程" width="300" height="211" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 vi-vim 命令使用说明-使用教程
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;vi 简易说明&lt;/p&gt;
&lt;p&gt;要管理好 Linux 系统﹐少不了要对设定档案进行编辑，如果您用惯了 Microsoft Word 或 Corel Wordperfect 的话，除了 Xwindows 里面的编辑程式(如 xemacs )用起来尚可应付外，于 Linux 的文字模式下，会觉得档案编辑程式都没有 Windows 程式那么方便。虽然 Linux 下面也有好多种文书编辑器，例如﹕ed、vi、pico、joe、emacs等。&lt;/p&gt;
&lt;p&gt;以下我们以最常见到的 vi 这套文书软体来介绍 Linux 底下的文书编辑动作。&lt;/p&gt;
&lt;p&gt;基本上 vi 共分为两种模式，一种是『编辑模式』，一种被称为『命令模式』，其中，在命令模式中尚包含『命令列模式』的情况。『编辑』与『命令』这两种模式的切换动作是以『Esc』来达成的。通常，档案一开启或者新建档时，会成为命令模式，如果要在档案中输入字元，就必需以小写的 i 来进入编辑模式，进入编辑模式后你输入的咚咚才会显示出来！那由『编辑模式』要变成『命令模式』时，就直接按『Esc』即可。而若要进入『命令列模式』时，就必须要在命令模式中输入『:』（冒号），那游标就会跑到萤幕的最下面一行来等待你输入啦！&lt;/p&gt;</description></item><item><title>Android 应用程序 添加网络权限</title><link>https://fukun.org/archives/1207220.html</link><pubDate>Tue, 07 Dec 2010 08:24:50 +0800</pubDate><guid>https://fukun.org/archives/1207220.html</guid><description>&lt;p&gt;Android开发应用程序时，如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;uses-permission android:name=&amp;#8221;android.permission.INTERNET&amp;#8221;&gt;&lt;/uses-permission&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果不知道放在哪个位置，那就放在&lt;/manifest&gt;前边好了。&lt;/p&gt;
&lt;p&gt;同样的如果用到其它的权限，也需要作出声明,部分权限列表如下:&lt;/p&gt;
&lt;p&gt;android.permission.ACCESS_CHECKIN_PROPERTIES&lt;/p&gt;
&lt;p&gt;允许读写访问”properties”表在 checkin数据库中，改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded)&lt;/p&gt;
&lt;p&gt;android.permission.ACCESS_COARSE_LOCATION&lt;/p&gt;
&lt;p&gt;允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location)&lt;/p&gt;
&lt;p&gt;android.permission.ACCESS_FINE_LOCATION&lt;/p&gt;
&lt;p&gt;允许一个程序访问精良位置(如GPS) (Allows an application to access fine (e.g., GPS) location)&lt;/p&gt;
&lt;p&gt;android.permission.ACCESS_LOCATION_EXTRA_COMMANDS&lt;/p&gt;
&lt;p&gt;允许应用程序访问额外的位置提供命令(Allows an application to access extra location provider commands)&lt;/p&gt;</description></item><item><title>篮球的颠覆性创新–跳投</title><link>https://fukun.org/archives/1207213.html</link><pubDate>Tue, 07 Dec 2010 05:50:26 +0800</pubDate><guid>https://fukun.org/archives/1207213.html</guid><description>&lt;div id="attachment_214" style="width: 160px" class="wp-caption alignright"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/12/JumpShot.jpg"&gt;&lt;img class="size-full wp-image-214" title="篮球的颠覆性创新--跳投" src="//fukun.org/wp-content/uploads/2010/12/JumpShot.jpg" alt="篮球的颠覆性创新--跳投" width="150" height="232" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 篮球的颠覆性创新--跳投
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;自詹姆斯·奈史密斯（James Naismith）发明了篮球这项运动以来，在过去120年里，这项运动发生的最重要的变化是什么？灌篮？时限钟？湖人队的美女啦啦队？这些都很重要…… 但是有一种特别的变化可能仍然被公认为是篮球运动真正的创新之一——这个变化彻底改变了篮球运动，颠覆了传统打篮球的方式。猜不出来吗？&lt;/p&gt;
&lt;p&gt;这就是跳起投篮。没错，跳投——现在我们都认为这种投篮方式是理所当然的。&lt;/p&gt;
&lt;p&gt;在 篮球运动刚出现的那40年里，它还是一项节奏很慢的运动，只能“立定投篮”——投篮者可以用一只手或两只手投篮，但是脚要牢牢地站在地上。几乎没有人在投 篮的时候起跳——当时被普遍接受的观点是，只有在立定的时候投篮才能投得准（就像罚球时那样）。一边跳起一边投篮的想法简直是闻所未闻。&lt;/p&gt;
&lt;p&gt;20 世纪40年代，肯尼·塞勒斯（Kenny Sailors）代表怀俄明大学出战，彻底改变了这种情况。据《跳投的起源》（Origins of the Jump Shot）一书的作者约翰·克里斯戈（John Christgau）说，塞勒斯是最早使用跳投方法的人之一（甚至可能是第一个人），那时他还是怀俄明的一个年轻人。&lt;/p&gt;</description></item><item><title>html 插入flash swf avi mpeg 视频文件 代码</title><link>https://fukun.org/archives/1206211.html</link><pubDate>Mon, 06 Dec 2010 09:45:48 +0800</pubDate><guid>https://fukun.org/archives/1206211.html</guid><description>&lt;p&gt;html 插入flash swf avi mpeg 视频文件 代码&lt;/p&gt;
&lt;p&gt;很简单，大家直接拿去用把~~~&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;OBJECT&gt;&lt;embed src=&amp;#8221;视频文件路径&amp;#8221; quality=&amp;#8221;high&amp;#8221; pluginspage=&amp;#8221;http://www.macromedia.com/go/getflashplayer&amp;#8221; type=&amp;#8221;application/x-shockwave-flash&amp;#8221; width=&amp;#8221;620&amp;#8243; height=&amp;#8221;430&amp;#8243;&gt;&lt;/embed&gt; &lt;/OBJECT&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>网友QQ相约自杀 腾讯被指监控不力担责10%</title><link>https://fukun.org/archives/1206208.html</link><pubDate>Mon, 06 Dec 2010 01:52:12 +0800</pubDate><guid>https://fukun.org/archives/1206208.html</guid><description>&lt;p&gt;&lt;span style="font-size: medium;"&gt;据新华社电 浙江省丽水市莲都区人民法院3日对一起大学生利用腾讯QQ网络相约自杀的民事赔偿纠纷作出一审判决，腾讯被判承担10%的责任。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;原告为自杀大学生范某的父母。他们起诉称,今年6月,被告张某利用腾讯QQ向不特定的公众发出自杀邀请,并留下手机号码。两原告之子范某在看到后便接受了自杀邀请,并于6月24日到达丽水与被告张某一同在酒店内自杀。由于难以忍受痛苦,被告张某放弃了自杀行为。但范某仍然坚持自杀,最终身亡。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Google系统Chrome OS或将于12月7日发布</title><link>https://fukun.org/archives/1205205.html</link><pubDate>Sun, 05 Dec 2010 11:36:56 +0800</pubDate><guid>https://fukun.org/archives/1205205.html</guid><description>&lt;p&gt;Google日前向媒体发送了邀请函，邀请众媒体参与12月7日于美国旧金山举办的Chrome发布会。Google表示，会上将宣布“一些关于Chrome的令人兴奋的消息”。&lt;/p&gt;
&lt;div id="attachment_206" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/12/chromeos.jpg"&gt;&lt;img class="size-medium wp-image-206" title="Google系统Chrome OS或将于12月7日发布" src="//fukun.org/wp-content/uploads/2010/12/chromeos-300x168.jpg" alt="Google系统Chrome OS或将于12月7日发布" width="300" height="168" srcset="//fukun.org/wp-content/uploads/2010/12/chromeos-300x168.jpg 300w, //fukun.org/wp-content/uploads/2010/12/chromeos.jpg 500w" sizes="(max-width: 300px) 100vw, 300px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Google系统Chrome OS或将于12月7日发布
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>谷歌Chrome浏览器计算机</title><link>https://fukun.org/archives/1204201.html</link><pubDate>Sat, 04 Dec 2010 11:55:46 +0800</pubDate><guid>https://fukun.org/archives/1204201.html</guid><description>&lt;p&gt;近日，在国外网站上的最热门话题就是谷歌的Chrome浏览器计算机了。对此，有什么好说的？&lt;/p&gt;
&lt;p&gt;今年5月份，谷歌Chrome浏览器计算机的实体机外观已经泄露出来（见[1])，但是，那时并没有引起人们的注意，不把它当成一回事儿。近日，情况就不同了，突然冒出了1千多篇文章鼓吹谷歌的浏览器计算机，势头起来了。世界各地的新闻记者与国内媒体记者没有两样，喜欢探听“小道消息”，谷歌浏览器计算机的一些“细节”终于浮出水面。什么谷歌计算机的7,500套样机已经在台湾投产，什么浏览器计算机开机只需3秒钟，连Mario Andretti赛车手的名字都搬出来了，……许多“小道消息”都被捅出来了，给人一种“暴雨欲来，风满楼”的感觉。&lt;/p&gt;</description></item><item><title>新员工培训</title><link>https://fukun.org/archives/1203199.html</link><pubDate>Fri, 03 Dec 2010 01:04:34 +0800</pubDate><guid>https://fukun.org/archives/1203199.html</guid><description>&lt;p&gt;入职半年之后，接受新员工培训一天#_#，。&lt;/p&gt;
&lt;p&gt;不过今天下班之后跟同事一起去happy，看电影，吃个饭~~~~&lt;/p&gt;
&lt;p&gt;看电影的地方居然是我之前在北京打工的那个网吧的前面……&lt;/p&gt;
&lt;p&gt;真是缘分呐~~~~~&lt;/p&gt;</description></item><item><title>正则表达式—js,Jquery验证电子邮箱,js,Jquery验证电话号码,js,Jquery验证邮编,jquery 表单验证</title><link>https://fukun.org/archives/1202195.html</link><pubDate>Thu, 02 Dec 2010 10:21:30 +0800</pubDate><guid>https://fukun.org/archives/1202195.html</guid><description>&lt;p&gt;在引入Jquery文件后，可以使用以下函数调用正则表达式对表单进行验证。&lt;/p&gt;
&lt;p&gt;js,Jquery验证电子邮箱的函数:&lt;/p&gt;
&lt;pre class="brush: jscript; title: Example; notranslate" title="Example"&gt;function checkmail(s,name){
str = $("#"+s).val();
var reg=/^[a-zA-Z]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([w-]+.)+[a-zA-Z]{2,}$/;
if(!reg.test(str)){
msg=name+"请输入合法的Email地址";
alert(msg);
return false;
}
else{
return true;
}
}
&lt;/pre&gt;
&lt;p&gt;js,Jquery验证电话号码:&lt;/p&gt;</description></item><item><title>FreeBSD下Root用户开启ssh远程登录</title><link>https://fukun.org/archives/1201192.html</link><pubDate>Wed, 01 Dec 2010 13:18:54 +0800</pubDate><guid>https://fukun.org/archives/1201192.html</guid><description>&lt;p&gt;  为了安全起见，FreeBSD默认情况下是不允许root用户进行SSH远程登录的，需要进行以下操作才可以进行Root用户的ssh远程登录。&lt;/p&gt;
&lt;p&gt;首先vi编辑/etc/inetd.conf,去掉ssh前的#注释，保存后:wq退出 (开启监听ssh服务)&lt;/p&gt;
&lt;p&gt;编辑/etc/rc.conf&lt;/p&gt;
&lt;p&gt;最后加入:sshd_enable=”yes”即可&lt;/p&gt;
&lt;p&gt;激活sshd服务：&lt;/p&gt;
&lt;p&gt;#/etc/rc.d/sshd start&lt;/p&gt;
&lt;p&gt;用此命令检查服务是否启动，在22端口应该有监听。&lt;/p&gt;
&lt;p&gt;#netstat -an ## check port number 22&lt;/p&gt;
&lt;p&gt;最后&lt;/p&gt;
&lt;p&gt;  #vi  /etc/ssh/sshd_config&lt;/p&gt;
&lt;p&gt;  在/etc/ssh/sshd_config最后中加入 &lt;/p&gt;
&lt;p&gt;PermitRootLogin yes #允许root登录&lt;/p&gt;
&lt;p&gt;PermitEmptyPasswords no #不允许空密码登录&lt;/p&gt;
&lt;p&gt;PasswordAuthentication yes # 设置是否使用口令验证。&lt;/p&gt;</description></item><item><title>新浪微博挂掉了，新浪微博打不开</title><link>https://fukun.org/archives/1201190.html</link><pubDate>Wed, 01 Dec 2010 04:30:25 +0800</pubDate><guid>https://fukun.org/archives/1201190.html</guid><description>&lt;p&gt;新浪微博打不开，新浪微博挂掉了，，，打不开了，不知道是网络原因还是什么原因。。很有意思啊&lt;/p&gt;</description></item><item><title>程序员从初级到中级10个秘诀</title><link>https://fukun.org/archives/1130188.html</link><pubDate>Tue, 30 Nov 2010 13:38:22 +0800</pubDate><guid>https://fukun.org/archives/1130188.html</guid><description>&lt;div&gt;
 &lt;p&gt;
 Justin James曾发表过一篇博文《&lt;a href="http://blogs.techrepublic.com.com/10things/?p=732"&gt;10 tips for advancing from a beginner to an intermediate developer&lt;/a&gt;》，为我们分享如何才能完成程序员从初级到中级的蜕变，现将中文译文转载于此，供大家借鉴。
 &lt;/p&gt;
 &lt;p&gt;
 在一封与TechRepublic会员交流的邮件当中，他提到了面向程序员的博客、文章及杂志分成两类：面向初学者类（“hello world”这种类型的教程）以及面向专家类（MSDN杂志）。这个观点很好，有关程序员如何从初级跃升到中级的信息极少。以下是为了实现这种转变需要你去做的10件事。
 &lt;/p&gt;
 &lt;p&gt;
 &lt;strong&gt;1.学习另一门语言&lt;/strong&gt;
 &lt;/p&gt;
 &lt;p&gt;
 其实你学的是哪一门语言并没有关系，但是学习另一门语言（不管你已经了解多少种语言）将把你打造为更好的程序员。能学会一门与你日常使用的语言风格迥异的语言则更佳。打个比方，如果你是C#程序员，学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大。
 &lt;/p&gt;
 &lt;p&gt;
 我说“学另一门语言”的意思是要真正学会它。学习一门语言包括三个领域的知识：语法、内置操作符和库，以及“如何使用”。前面两个简单；我认为一名有经验的程序员，根据语言的不同，能在半小时到几小时内掌握足以维护代码的语法知识。操作符和库只不过是知识逐步积累的过程，你什么时候想清楚要了解什么了，再去查阅参考材料也不迟。只有第三项，“如何使用它”-要花上你几个月的时间去跟这门语言打交道，真正的奇迹就在此发生。我建议用这门语言的风格去做一个适合该语言的项目。
 &lt;/p&gt;
 &lt;p&gt;
 真正学会了另一门语言之后，我敢保证你的程序员水平一定会突飞猛进。
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>不及时支付分成 WP7遭开发者吐槽</title><link>https://fukun.org/archives/1130186.html</link><pubDate>Tue, 30 Nov 2010 13:32:21 +0800</pubDate><guid>https://fukun.org/archives/1130186.html</guid><description>&lt;p&gt;微软深知第三方应用和游戏开发商对一款智能手机系统的重要性，他们现在正积极的拉拢更多的开发者进入Windows Phone 7社区，不过微软没有料到的是已经有开发商开始吐槽WP7开发平台不给力。&lt;/p&gt;
&lt;p&gt;因为WP7系统的单任务特点，许多IM工具需要调用推送通知API才能实现在线挂机。开发者Nicholas Yu制作有一个款名为GoVoice的应用，可以在WP7手机上提供Google Voice服务，不过推送通知这个重要功能到现在还没有得到支持。&lt;/p&gt;
&lt;p&gt;另外微软的电子市场销售记录分析和报告功能也不能正常工作，所以GoVoice究竟卖出了多少，到现在还不清楚，而且至今尚未收到微软的销售回款。微软的开发者计划已经开始成为困扰开发人员的枷锁。&lt;/p&gt;
&lt;p&gt;另外一名开发者Justin James近日也在网上对WP7进行控诉，他写了一本关于Windows Phone 7开发指南，书中声称微软知道2011年2月份都不会优化开发者相关的工具。&lt;/p&gt;
&lt;p&gt;吸引开发者关注并支持WP7是微软目前的重要工作，但是这些负面信息将会极大的影响第三方应用的增长。不提供报告分析工具，不及时支付销售款项，有多少开发者还会相信微软？&lt;/p&gt;</description></item><item><title>维基解密被攻击后转用亚马逊服务器</title><link>https://fukun.org/archives/1130183.html</link><pubDate>Tue, 30 Nov 2010 13:28:23 +0800</pubDate><guid>https://fukun.org/archives/1130183.html</guid><description>&lt;div&gt;
 &lt;p&gt;
 北京时间11月30日早间消息，互联网观察人士亚力·诺克里夫(Alex Norcliffe)近日发表报告称，在遭遇分布式拒绝服务攻击(DDoS)攻击之后，维基解密将该网站流量从一家瑞典托管服务商转移到了位于法国和美国的服务器，其中包括亚马逊服务器。
 &lt;/p&gt;
 &lt;p&gt;
 据互联网观察人士诺克里夫称，维基解密公布外交文档的页面cablegate.wikileaks.org链接至位于美国西雅图的亚马逊网络服务(Amazon Web Services )，以及法国公司Octopuce。维基解密首页Wikileaks.org则重新链接至亚马逊位于美国和爱尔兰的服务器。
 &lt;/p&gt;
 &lt;p&gt;
 考虑到维基解密备受美国政府批评，选择使用亚马逊这家美国公司的服务器或许有些奇怪。
 &lt;/p&gt;
 &lt;p&gt;
 美国众议院国土安全委员会民主党人士彼得·金(Peter King)周日已经向美国首席检察官埃里克·霍尔德(Eric Holder)致函，表示支持以违反《反间谍法》为罪名起诉维基解密创始人朱利安·阿桑奇(Julian Assange)。
 &lt;/p&gt;
 &lt;p&gt;</description></item><item><title>日看500份简历的HR分享其简历筛选之道</title><link>https://fukun.org/archives/1129180.html</link><pubDate>Mon, 29 Nov 2010 09:49:22 +0800</pubDate><guid>https://fukun.org/archives/1129180.html</guid><description>&lt;p&gt;最近，看到国家下文告诉社会07年有XXX万，08年还有XXX万，09年还有600多万大学生等待找工作。希望大学生们”先就业再择业”。为什么我毕业时候国家没下这个文呢。。。闲话不说，做主管岗位6年了，看过几千封简历。这2周，公司大规模招聘，我基本就干一件事情，看简历。一天 300～500封。早中晚各看一次。找工作很难吗？不难，让HR通知你面试就是成功第一步。&lt;/p&gt;
&lt;p&gt;唉，现在的高校毕业办的人都在干嘛。除了收钱毛都不教，教的也不管毛用。如果你的朋友最近在找工作，在通过网上投简历找工作，希望下面的东西有一两条能帮到忙。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;情节1：不要用51JOB和CHINAHR的简历模板。&lt;/strong&gt; 答：的确51JOB橘色的模板，CHINAHR蓝色的模板很工整。但是让你一口气看100个一样模板的简历，你会怎样。建议：自己直接在写邮件的正文区里写点啥吧。2句话也行。&lt;/p&gt;
&lt;p&gt;&lt;a title="dushu.jpg" rel="group" href="http://www.thb720.me/wp-content/uploads/auto_save_image/2010/11/043006PdV.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;情节2：不要用招聘网站的粘贴简历功能。&lt;/strong&gt; 答：好一点的招聘网站还凑活，很多招聘网站都会在邮件正文告诉阅览者，XXX对您提供的职位感兴趣，使用XXX网站的粘贴简历功能给您发送简历，后面是一串网址，让你点击查看详细简历。我是不会点的。建议：看娱乐新闻可以懒，投简历别懒。&lt;/p&gt;
&lt;p&gt;**情节3：工作年限很重要。**答：并不是说应届不好。很多公司（当然也包括我们这个小公司）在不同的时段会选择不同的人，如果恰好这个时期我们优先录用有工作经验的。可能我连滚动条都没往下拖，就点“下一封”了。建议：在工作年限那里填写你的项目经验年限或者社会实践年限。不是教大家骗人，到简历下面还是要如实说的。这么做只是让你的简历会被往下拖被看完。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;情节4：个人评价很重要。&lt;/strong&gt; 答：现在很多模板第2块就是填写你的基本评价。这个很重要很重要！&lt;/p&gt;
&lt;p&gt;—————————————————————————&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果你希望你的简历往下拖动。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Sql Server 使用正则表达式Regular进行内容替换</title><link>https://fukun.org/archives/1129170.html</link><pubDate>Mon, 29 Nov 2010 07:33:40 +0800</pubDate><guid>https://fukun.org/archives/1129170.html</guid><description>&lt;p&gt;例句：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;全部纳入鲜活&lt;span id=stock\_sz000061&gt;农产品&lt;/span&gt;&lt;span id=quote\_sz000061&gt;&lt;/span&gt;运输绿色通道网络范围，对整车合法装载运输鲜活农产品车辆免收车辆通行费；享受免收鲜活农产品通行费的农产品新增土豆等4个品种。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;现在在这个句子有含有没有用处的span标签，我们需要使用sql语句替换掉这些标签，最后达到这样的效果:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;全部纳入鲜活农产品运输绿色通道网络范围，对整车合法装载运输鲜活农产品车辆免收车辆通行费；享受免收鲜活农产品通行费的农产品新增土豆等4个品种。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;首先需要做如下操作，使SQL支持正则表达式.&lt;/p&gt;
&lt;p&gt;1.下载支持所需的文件 &lt;a href="http://digdeeply.org/dd_share/sql_xp_regular.7z" target="_blank"&gt;sql_xp_regular.7z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.复制 &lt;em&gt;xp_pcre.dll&lt;/em&gt; 到 &lt;em&gt;Program FilesMicrosoft SQL ServerMSSQLbinn 目录下；&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;3.运行安装脚本&lt;/em&gt; &lt;em&gt;INSTALL.SQL；&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;4.然后就可以使用啦，主要有若干function及以下6个SP：&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xp_pcre_match&lt;/li&gt;
&lt;li&gt;xp_pcre_match_count&lt;/li&gt;
&lt;li&gt;xp_pcre_replace&lt;/li&gt;
&lt;li&gt;xp_pcre_format&lt;/li&gt;
&lt;li&gt;xp_pcre_split&lt;/li&gt;
&lt;li&gt;xp_pcre_show_cache&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我们使用function 这样进行替换：&lt;/p&gt;</description></item><item><title>SQL Server 中使用正则表达式Regular</title><link>https://fukun.org/archives/1129165.html</link><pubDate>Mon, 29 Nov 2010 03:58:07 +0800</pubDate><guid>https://fukun.org/archives/1129165.html</guid><description>&lt;p&gt;来源： &lt;a rel="nofollow" href="http://www.codeproject.com/KB/database/xp_pcre.aspx"&gt;&lt;a href="http://www.codeproject.com/KB/database/xp_pcre.aspx"&gt;http://www.codeproject.com/KB/database/xp_pcre.aspx&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;An Extended Stored Procedure to use regular expressions in T-SQL.&lt;/p&gt;
&lt;p&gt;一个使用正则表达式的存储过程.&lt;/p&gt;
&lt;p&gt;存储过程下载地址：&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="xp_pcre/xp_pcre.zip"&gt;Download source and DLL – 219 Kb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sql Server 不如Oracle,自带正则表达式，不过还是有办法实现的。使用这个SP就可以啦。&lt;/p&gt;
&lt;p&gt;使用方法：&lt;/p&gt;
&lt;p&gt;1.复制 &lt;em&gt;xp_pcre.dll&lt;/em&gt; 到 &lt;em&gt;Program FilesMicrosoft SQL ServerMSSQLbinn 目录下；&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;2.运行安装脚本 &lt;em&gt;INSTALL.SQL；&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;3.然后就可以使用啦，主要有以下6个SP：&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;xp_pcre_match&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xp_pcre_match_count&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xp_pcre_replace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xp_pcre_format&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xp_pcre_split&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xp_pcre_show_cache&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;————————————————————–&lt;/p&gt;</description></item><item><title>汗，不知为何在宿舍登陆不上我的站了</title><link>https://fukun.org/archives/1129162.html</link><pubDate>Mon, 29 Nov 2010 01:13:04 +0800</pubDate><guid>https://fukun.org/archives/1129162.html</guid><description>&lt;p&gt;郁闷啊，不知道怎么回事，前天回到宿舍就发现登陆不上自己的站了，开始还以为是空间的问题，就没注意，呆了两天，发现还是上不去，跟空间的人问了问，他那可以打开……&lt;/p&gt;
&lt;p&gt;我就纳闷了，我那nslookup能nslookup出来，ping能ping通，tracert能tracert到，为啥就是打不开呢。。。。。。。。&lt;/p&gt;</description></item><item><title>QQ安全管家被AVAST报毒</title><link>https://fukun.org/archives/1126158.html</link><pubDate>Fri, 26 Nov 2010 09:56:18 +0800</pubDate><guid>https://fukun.org/archives/1126158.html</guid><description>&lt;p&gt;360和QQ的战争打到这一步，QQ居然出了如此损招，没挂半个小时的安全管家，相当于挂一天的QQ。&lt;/p&gt;
&lt;p&gt;不过他们爱怎么打是自己的事，不鸟他们就好了，自己该怎么过还怎么过。QQ的等级对我来说也没什么诱惑力了， 多个星星多个月亮的又能说明什么呢。&lt;/p&gt;
&lt;p&gt;不过既然他们打仗，搞出便宜来了，自己不占白不占啊。于是乎，我跑去官网下了个安全管家。打算每天挂它半个小时。&lt;/p&gt;
&lt;p&gt;谁知，安装的时候，居然被avast报毒……&lt;/p&gt;
&lt;div id="attachment_159" style="width: 272px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/avastqqsafe.jpg"&gt;&lt;img class="size-medium wp-image-159" title="QQ安全管家被avast报毒" src="//fukun.org/wp-content/uploads/2010/11/avastqqsafe-262x300.jpg" alt="QQ安全管家被avast报毒" width="262" height="300" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 QQ安全管家被avast报毒
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>上级严令置若罔闻 腾讯QQ再起事端</title><link>https://fukun.org/archives/1125155.html</link><pubDate>Thu, 25 Nov 2010 15:08:22 +0800</pubDate><guid>https://fukun.org/archives/1125155.html</guid><description>&lt;p&gt;2010年11月21日 “360流氓VS腾讯色狼”大战，在工信部的干涉下，双方纷纷在当天晚上第一时间挂起“道歉信”，腾讯与360都通过自己的方式向用户“表白”，以证明自己从此以后都会“悔过自新”，双方也由当时的对立状态，逐渐走向“和解”状态，从而耗时一周的360与QQ之间的“客户端”争夺大战，已趋于平缓之势。&lt;/p&gt;
&lt;p&gt;但是令人意想不到的是，工信部干涉“3Q大战”没过几天，11月24日，腾讯公然在其官方博客透露：“QQ电脑管家4.4 Beta2发布，只要关联了QQ号码，并开启QQ电脑管家实时防护，当天使用超过30分钟，就会在原QQ的升级基数上加1天”。&lt;/p&gt;
&lt;p&gt;3Q大战的起因就是腾讯公司利用春节、五一、中秋假期，避开一线城市以防引起主流人士的批评，采取强制捆绑、在用户毫不知情的情况下偷偷安装行为，大力推广其QQ医生和QQ电脑管家，才引发一这场震惊全国的3Q大战。&lt;/p&gt;
&lt;p&gt;现在，“3Q大战”没过几天，工信部的严令刚刚下发，腾讯就开始变着花样再次推广QQ电脑管家4.4 Beta2，甚至用提升腾讯QQ用户等级来诱惑用户。腾讯这一做法，虽然不是对360直接进攻，但打压360之势，明眼人一看就一目了然。&lt;/p&gt;</description></item><item><title>json验证,json串可用性测试,如何查看所构造的json是否可以使用?</title><link>https://fukun.org/archives/1124145.html</link><pubDate>Wed, 24 Nov 2010 14:50:11 +0800</pubDate><guid>https://fukun.org/archives/1124145.html</guid><description>&lt;p&gt;&lt;a href="http://www.jsonlint.com/"&gt;http://www.jsonlint.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;只要打开这个网址，将构造出来的字符串放到里面，点击 Validate ,稍等片刻，马上就可以看到结果啦。而且还会给你格式化，看起来也很方便，实在是Jquery,Ajax之居家必备啊。&lt;/p&gt;</description></item><item><title>SSI—shtml静态页面include包含网页文件Apache开启SSI配置</title><link>https://fukun.org/archives/1124138.html</link><pubDate>Wed, 24 Nov 2010 02:00:13 +0800</pubDate><guid>https://fukun.org/archives/1124138.html</guid><description>&lt;p&gt;shtml静态页面include包含网页文件,实现静态页面加载公共页面，如header,footer或者文章列表正文页右侧的最新、最热文章列表等。&lt;/p&gt;
&lt;p&gt;什么是SSI技术？&lt;/p&gt;
&lt;p&gt;SSI直译服务器端包含(Server Side Includes)，由字面上看由WEB在服务器提供的一种功能，并且是在服务器端进行的。一般说来，要完成较复杂的任务（如：聊天室／留言本等），必须设计专门的CGI或ASP程序；但是如果只是想给网页加上简单的功能(如：显示一篇文档，web服务器环境变量，关于该文档的更新日期／大小等)，则只要 SSI就可以完成了。SSI则是直接由服务器解释执行的，须要WEB服务器软件支持SSI。&lt;/p&gt;
&lt;p&gt;而且，由于直接在服务器端执行SSI，产生相应HTML代码；所以对客户端没有限制，不会产生因为不同浏览器而产生不同的观看效果。&lt;/p&gt;
&lt;p&gt;SSI有什么用?&lt;/p&gt;
&lt;p&gt;目前，主要有以下几种用用途：&lt;/p&gt;
&lt;p&gt;1、 显示服务器端环境变量&amp;lt;#echo&amp;gt;&lt;/p&gt;
&lt;p&gt;2、 将文本内容直接插入到文档中&amp;lt;#include&amp;gt;&lt;/p&gt;
&lt;p&gt;3、 显示WEB文档相关信息&amp;lt;#flastmod #fsize&amp;gt; (如文件制作日期/大小等)&lt;/p&gt;
&lt;p&gt;4、 直接执行服务器上的各种程序&amp;lt;#exec&amp;gt;(如CGI或其他可执行程序)&lt;/p&gt;
&lt;p&gt;5、 设置SSI信息显示格式&amp;lt;#config&amp;gt;(如文件制作日期/大小显示方式)&lt;/p&gt;
&lt;p&gt;高级SSI可设置变量使用if条件语句。&lt;/p&gt;</description></item><item><title>兄弟，你的理想还在吗？</title><link>https://fukun.org/archives/1123135.html</link><pubDate>Tue, 23 Nov 2010 04:41:41 +0800</pubDate><guid>https://fukun.org/archives/1123135.html</guid><description/></item><item><title>加班加班,各种加班</title><link>https://fukun.org/archives/1122132.html</link><pubDate>Mon, 22 Nov 2010 13:16:10 +0800</pubDate><guid>https://fukun.org/archives/1122132.html</guid><description>&lt;p&gt;加班加班，加早班，加晚班，加周末班，加通宵班，各种加班。。。&lt;/p&gt;
&lt;p&gt;本以为11月20日过去了，不曾想，1月15号又要来了。。。。。。††&lt;/p&gt;</description></item><item><title>工信部关于批评奇虎公司和腾讯公司的通报全文</title><link>https://fukun.org/archives/1121129.html</link><pubDate>Sun, 21 Nov 2010 12:53:24 +0800</pubDate><guid>https://fukun.org/archives/1121129.html</guid><description>&lt;div id="attachment_130" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/360pkqq.jpg"&gt;&lt;img class="size-medium wp-image-130" title="关于批评北京奇虎科技有限公司和深圳市腾讯计算机系统有限公司的通报 " src="//fukun.org/wp-content/uploads/2010/11/360pkqq-300x178.jpg" alt="关于批评北京奇虎科技有限公司和深圳市腾讯计算机系统有限公司的通报 " width="300" height="178" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 关于批评北京奇虎科技有限公司和深圳市腾讯计算机系统有限公司的通报
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;北京奇虎科技有限公司、深圳市腾讯计算机系统有限公司，相关互联网信息服务提供者：&lt;/p&gt;
&lt;p&gt;近日，北京奇虎科技有限公司和深圳市腾讯计算机系统有限公司(以下简称两公司)在互联网业务发展中产生纠纷，采取不正当竞争行为，甚至单方面中 断对用户的服务，影响了用户的正常业务使用，引起用户不满，造成了恶劣的社会影响。事件发生后，工业和信息化部高度重视，会同相关部门及时了解情况，平息 争议，坚决维护用户合法权益和市场秩序。经研究，现对两公司通报批评，并对两公司及相关互联网信息服务提供者提出如下要求：&lt;/p&gt;
&lt;p&gt;一、 责令两公司自本文件发布5个工作日内向社会公开道歉，妥善做好用户善后处理事宜。&lt;/p&gt;
&lt;p&gt;二、 责令两公司停止互相攻击，确保相关软件兼容和正常使用，加强沟通协商，严格按照法律的规定解决经营中遇到的问题。&lt;/p&gt;
&lt;p&gt;三、 我部将依据职权，会同相关部门对两公司涉嫌违反相关法律规定的行为进行进一步调查处理，责令两公司做好配合工作。&lt;/p&gt;
&lt;p&gt;四、 责令两公司从本次事件中吸取教训，认真学习国家相关法律规定，强化职业道德建设，严格规范自身行为，杜绝类似行为再次发生。&lt;/p&gt;
&lt;p&gt;五、 相关互联网信息服务提供者要引以为戒，遵守行业规范，维护市场秩序，尊重用户权益，共同促进互联网行业健康、稳定、持续发展。&lt;/p&gt;
&lt;p&gt;工业和信息化部&lt;/p&gt;
&lt;p&gt;二O一O年十一月二十日&lt;/p&gt;</description></item><item><title>Windows 8将是脱离硬件的虚拟化系统</title><link>https://fukun.org/archives/1120121.html</link><pubDate>Sat, 20 Nov 2010 10:48:35 +0800</pubDate><guid>https://fukun.org/archives/1120121.html</guid><description>&lt;p&gt;　　虽然在过去几个月里Windows 8也只是偶尔跃入我们的眼帘，不过也让我们对其有了一定的了解，它将在2012年发布，采用面部识别系统登录，新增Windows应用程序商店，提供更快 的启动速度。近日微软的招聘启事显示，微软计划为Windows 8开发一个基于Windows Azure的云备份客户端，并且为其整合更多的Windows Live服务。种种迹象表明，Windows 8更侧重于云计算服务。&lt;/p&gt;
&lt;div id="attachment_122" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/win8virtual1.gif"&gt;&lt;img class="size-medium wp-image-122" title="win8virtual1" src="//fukun.org/wp-content/uploads/2010/11/win8virtual1-300x223.gif" alt="Windows 8" width="300" height="223" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Windows 8
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;　　今天一份新的幻灯片曝光，微软如何设计Windows 8架构，从中可见一斑。这份文档来自于今年4月份伦敦举办的微软架构峰会，大会内容主要关于虚拟化功能。在其中一页幻灯片中，微软提到了2012年的“下 一代Windows”，也就是现在微软口中的Windows 8，而内容就是Windows客户端的虚拟化。&lt;/p&gt;
&lt;p&gt;　　微软将这份架构幻灯片命名为“桌面即服务(DaaS)”，描述了当前消费者在使用Windows时出现的问题和更进一步的需求。如何解决这些问题并满足用户不断变化的需求呢?虚拟化技术!&lt;/p&gt;</description></item><item><title>.NET 接口,webservice</title><link>https://fukun.org/archives/1119115.html</link><pubDate>Fri, 19 Nov 2010 15:21:32 +0800</pubDate><guid>https://fukun.org/archives/1119115.html</guid><description>&lt;p&gt;  最近需要做一个接口，.NET+sql server 2005 ,提供一些数据给移动终端，开发应用程序使用，而这些数据对外又应该是不公开的，不知道该如何实现，只能移动终端的程序访问，而其它渠道是禁止的，很是苦恼。&lt;/p&gt;
&lt;p&gt;  即使是采用Url参数传值验证，通过截取数据包的方式也应该是可以破解的。&lt;/p&gt;
&lt;p&gt;  在从公司回来的路上也一直在想，突然想到或许可以用一次性验证方式，即每次都产生不同的代码，通过URL去验证，验证成功之后转到数据页面，然后作废并产生新代码。可是忽然又想到，这个一次性密码又如何去获得，如果也是通过一个接口，实质问题还是没解决。只是增加了一些复杂性而已。&lt;/p&gt;
&lt;p&gt;  不知道有没有一种方式，可以实现类似TCP/IP协议的三次握手，即先通过url传值给接口，接口返回一个验证，移动终端再进行验证后返回成功，接口才开始返回数据。&lt;/p&gt;
&lt;p&gt;  目前还不明白移动终端到底采用什么样的方式去访问接口，需要获得数据又该是何种格式的。&lt;/p&gt;
&lt;p&gt;  下来仔细问明白再看看吧，如果需要返回XML格式的数据，或许使用webservice也是个不错的办法。&lt;/p&gt;</description></item><item><title>从csv格式文件导入到sql server 2005</title><link>https://fukun.org/archives/1119112.html</link><pubDate>Fri, 19 Nov 2010 01:37:25 +0800</pubDate><guid>https://fukun.org/archives/1119112.html</guid><description>&lt;p&gt;从csv格式文件导入到sql server 2005 :&lt;/p&gt;
&lt;p&gt;`从csv格式文件导入到sql server 2005 :&lt;/p&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;p&gt;就是so easy….&lt;/p&gt;</description></item><item><title>Excel文件导入到SQL,文本、数字丢失,变成NULL的处理</title><link>https://fukun.org/archives/111798.html</link><pubDate>Wed, 17 Nov 2010 06:27:37 +0800</pubDate><guid>https://fukun.org/archives/111798.html</guid><description>&lt;p&gt;导入一个Excel到Sql,好方便进行数据的筛选，但是却发现，在导入后，电话字段有很多数据丢失，变成了Null，经过仔细检查，发现丢失的都是包含有字符型的(如区号与号码之间的-)，再查看一下导入后的sql表，电话所在字段类型为float类型~~~难怪会有很多数据丢失了。。&lt;/p&gt;
&lt;p&gt;将Excel中的该列单元格格式改为 文本 格式，再导入，已经不行。&lt;/p&gt;
&lt;p&gt;搜索一番，发现有一个方法，不过这个方法只针对于完全数字格式的字段，如若想导入的是数字格式，而非字符串格式，就需要这样的做法：&lt;/p&gt;
&lt;div id="attachment_99" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/excelto2sql.jpg"&gt;&lt;img class="size-medium wp-image-99" title="Excel导入数据到Sql Server" src="//fukun.org/wp-content/uploads/2010/11/excelto2sql-300x189.jpg" alt="Excel导入数据到Sql Server" width="300" height="189" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 Excel导入数据到Sql Server
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;1、将导入的过程存为DTS包，将此DTS包找到&lt;/p&gt;
&lt;p&gt;2、在刚才保存的DTS包上右键，编辑包&lt;/p&gt;
&lt;p&gt;3、在编辑器里右键单击空白处，选择“脱接属性”命令。&lt;/p&gt;
&lt;p&gt;4、依次展开“连接”——excel的那个连接——&amp;gt;“OLE DB属性“，找到“Extended Properties”属性。&lt;/p&gt;
&lt;p&gt;5、将右边的“Value”属性的值改为“Excel 8.0;HDR=YES;IMEX=1”&lt;/p&gt;</description></item><item><title>wordpress固定链接设置与SEO,网站对各搜索引擎提交入口</title><link>https://fukun.org/archives/111688.html</link><pubDate>Tue, 16 Nov 2010 15:01:00 +0800</pubDate><guid>https://fukun.org/archives/111688.html</guid><description>&lt;p&gt;WordPress 允许更改默认的链接形式，以此提高 URL 的可读性和对搜索引擎的友好程度。&lt;/p&gt;
&lt;h3 id="常规设置"&gt;常规设置&lt;/h3&gt;
&lt;p&gt;&lt;label&gt;默认 &lt;/label&gt;&lt;a href="http://digdeeply.org/?p=123"&gt;http://digdeeply.org/?p=123&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;label&gt;日期和文章名 &lt;/label&gt;&lt;a href="http://digdeeply.org/2010/11/16/sample-post/"&gt;http://digdeeply.org/2010/11/16/sample-post/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;label&gt;月份和文章名 &lt;/label&gt;&lt;a href="http://digdeeply.org/2010/11/sample-post/"&gt;http://digdeeply.org/2010/11/sample-post/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;label&gt;数字 &lt;/label&gt;&lt;a href="http://digdeeply.org/archives/123"&gt;http://digdeeply.org/archives/123&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wordpress给出了以上四种方式，究竟选择哪一种才最好呢。&lt;/p&gt;
&lt;p&gt;本以为默认的效果 ?p=id 应该是效果最好的，但事实上却发现，不愧是老外的东西，google对它的样式很友好，能收录到东西，但是百度就不行了，百度将这样的样式 ?p=id 都视为一个页面，仅仅收录了一个首页，文章页面全都忽略掉了。&lt;/p&gt;</description></item><item><title>友情链接</title><link>https://fukun.org/friendlylink/</link><pubDate>Tue, 16 Nov 2010 03:24:08 +0800</pubDate><guid>https://fukun.org/friendlylink/</guid><description>&lt;p&gt;有希望互换链接的请联系 &lt;a href="mailto:admin@digdeeply.org"&gt;admin@digdeeply.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>使用jQuery.LightBox美化图片效果，美化博客</title><link>https://fukun.org/archives/111669.html</link><pubDate>Mon, 15 Nov 2010 16:16:29 +0800</pubDate><guid>https://fukun.org/archives/111669.html</guid><description>&lt;p&gt;使用LightBox可以美化图片的显示效果，在点击图片时显示并不用跳转到另一个页面去查看图片，而是在当前页前置显示，并且带有很cool的效果~~&lt;/p&gt;
&lt;p&gt;如图：&lt;/p&gt;
&lt;p style="text-align: center;"&gt;
 &lt;div id="attachment_70" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/jQuery_lightbox.png"&gt;&lt;img class="size-medium wp-image-70 " title="jQuery.lightbox美化图片显示效果" src="//fukun.org/wp-content/uploads/2010/11/jQuery_lightbox-300x188.png" alt="jQuery.lightbox美化图片显示效果" width="300" height="188" /&gt;&lt;/a&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;p class=&amp;quot;wp-caption-text&amp;quot;&amp;gt;
 jQuery.lightbox美化图片显示效果(点我就能看到效果啦)
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 &lt;p style="text-align: left;"&gt;
 只要点击图片，就会在当前页面弹出图片的大图，背景遮罩，点击空白处即可关闭大图。动画效果也是很cool的~~~
 &lt;/p&gt;
 &lt;p style="text-align: left;"&gt;
 使用也非常简单，只要四步就能搞定~
 &lt;/p&gt;
 &lt;p style="text-align: left;"&gt;
 1、引入必要的JS文件；5张展现效果时用的图片。
 &lt;/p&gt;
 &lt;blockquote&gt;
 &lt;p style="padding-left: 60px;"&gt;
 &lt;script type=&amp;#8221;text/javascript&amp;#8221; src=&amp;#8221;js/jquery.js&amp;#8221;&gt;&lt;/script&gt;&lt;br /&gt; &lt;script type=&amp;#8221;text/javascript&amp;#8221; src=&amp;#8221;js/jquery.lightbox-0.5.js&amp;#8221;&gt;&lt;/script&gt;
 &lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;p&gt;
 2、引入必要的样式。
 &lt;/p&gt;
 &lt;blockquote&gt;
 &lt;p style="padding-left: 30px;"&gt;
 &lt;link rel=&amp;#8221;stylesheet&amp;#8221; type=&amp;#8221;text/css&amp;#8221; href=&amp;#8221;css/jquery.lightbox-0.5.css&amp;#8221; media=&amp;#8221;screen&amp;#8221; /&gt;
 &lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;p&gt;
 3、检查小图处的样式，要在小图外加A标签，其链接为大图，此A标签的title属性为显示该图片的文件名。例如：
 &lt;/p&gt;
 &lt;blockquote&gt;
 &lt;p style="padding-left: 30px;"&gt;
 &lt;a href=&amp;#8221;largeimage1.jpg&amp;#8221; title=&amp;#8221;&amp;#8221;&gt;&lt;img src=&amp;#8221;thumb_image1.jpg&amp;#8221; width=&amp;#8221;72&amp;#8243; height=&amp;#8221;72&amp;#8243; alt=&amp;#8221;&amp;#8221; /&gt;&lt;/a&gt;
 &lt;/p&gt;
 &lt;/blockquote&gt;
 &lt;p&gt;
 4、使用jQuery选择器，选择到自己的A标签，然后.lightBox()就OK啦~~~~以下选择器中任选一个使用就可以：
 &lt;/p&gt;
 &lt;blockquote&gt;
 &lt;p style="padding-left: 30px;"&gt;
 &lt;span style="color: #000000;"&gt;&lt;script type=&amp;#8221;text/javascript&amp;#8221;&gt;&lt;br /&gt; $(function() {&lt;br /&gt; &lt;span style="color: #008000;"&gt;// Use this example, or&amp;#8230;&lt;/span&gt;&lt;br /&gt; $(&amp;#8216;a[@rel*=lightbox]&amp;#8217;).lightBox(); &lt;span style="color: #008000;"&gt;// Select all links that contains lightbox in the attribute rel&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #008000;"&gt;// This, or&amp;#8230;&lt;/span&gt;&lt;br /&gt; $(&amp;#8216;#gallery a&amp;#8217;).lightBox(); &lt;span style="color: #008000;"&gt;// Select all links in object with gallery ID&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #008000;"&gt;// This, or&amp;#8230;&lt;/span&gt;&lt;br /&gt; $(&amp;#8216;a.lightbox&amp;#8217;).lightBox(); &lt;span style="color: #008000;"&gt;// Select all links with lightbox class&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #008000;"&gt;// This, or&amp;#8230;&lt;/span&gt;&lt;br /&gt; $(&amp;#8216;a&amp;#8217;).lightBox(); &lt;span style="color: #008000;"&gt;// Select all links in the page&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #008000;"&gt;// &amp;#8230; The possibility are many. Use your creative or choose one in the examples above&lt;/span&gt;&lt;br /&gt; });&lt;br /&gt; &lt;/script&gt;&lt;/span&gt;
 &lt;/p&gt;</description></item><item><title>好二的腾讯</title><link>https://fukun.org/archives/111562.html</link><pubDate>Mon, 15 Nov 2010 09:46:35 +0800</pubDate><guid>https://fukun.org/archives/111562.html</guid><description>&lt;div id="attachment_63" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/2btengxun.jpg"&gt;&lt;img class="size-medium wp-image-63" title="好二的腾讯" src="//fukun.org/wp-content/uploads/2010/11/2btengxun-300x98.jpg" alt="好二的腾讯" width="300" height="98" srcset="//fukun.org/wp-content/uploads/2010/11/2btengxun-300x98.jpg 300w, //fukun.org/wp-content/uploads/2010/11/2btengxun-768x251.jpg 768w, //fukun.org/wp-content/uploads/2010/11/2btengxun-1024x335.jpg 1024w, //fukun.org/wp-content/uploads/2010/11/2btengxun.jpg 1068w" sizes="(max-width: 300px) 100vw, 300px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 好二的腾讯
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;腾讯真是搞笑啊,我在它的空间里调用它自己的表情图像，居然告诉我“原图未经腾讯网许可”，让人蛋疼……&lt;/p&gt;</description></item><item><title>单用户模式还原/恢复matser数据库</title><link>https://fukun.org/archives/111558.html</link><pubDate>Mon, 15 Nov 2010 09:26:36 +0800</pubDate><guid>https://fukun.org/archives/111558.html</guid><description>&lt;p&gt;在恢复master的备份时要注意：必须在单用户(single user)模式下进行&lt;/p&gt;
&lt;p&gt;a.进入单用户模式的方法：&lt;/p&gt;
&lt;p&gt;首先，在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m&lt;/p&gt;
&lt;p&gt;其中：-c 可以缩短启动时间，SQL Server不作为Windows NT的服务启动；&lt;/p&gt;
&lt;p&gt;-f 用最小配置启动SQL Server；&lt;/p&gt;
&lt;p&gt;-m 单用户模式启动SQL Server。&lt;/p&gt;
&lt;p&gt;也可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始&lt;/p&gt;
&lt;p&gt;其次，进行master数据库的恢复&lt;/p&gt;
&lt;p&gt;a.直接进入查询分析器,有个提示不要理会它。输入恢复语句进行数据库恢复:&lt;/p&gt;
&lt;p&gt;RESTORE   DATABASE   master   from   disk=’具体的备份文件路径和文件名’&lt;/p&gt;
&lt;p&gt;b.或者用这个,在命令提示符下输入,注意大小写&lt;/p&gt;
&lt;p&gt;使用”windows身份验证”的,输入:isql   /E&lt;/p&gt;
&lt;p&gt;使用”sql   server和windows身份验证”的,输入:isql /U”用户名” /P”密码”&lt;/p&gt;
&lt;p&gt;然后在出现的提示符下输入(注意1&amp;gt;,2&amp;gt;是提示符):&lt;/p&gt;
&lt;p&gt;1&amp;gt;RESTORE DATABASE master from disk=’c:具体的备份文件名’&lt;/p&gt;
&lt;p&gt;2&amp;gt;go&lt;/p&gt;</description></item><item><title>sql列变行 活用游标实现列数据变行数据</title><link>https://fukun.org/archives/111555.html</link><pubDate>Mon, 15 Nov 2010 09:23:17 +0800</pubDate><guid>https://fukun.org/archives/111555.html</guid><description>&lt;p&gt;本来是mysql数据库的，不过对mysql数据库的游标实在是不熟，所以先把数据导到了mssql 上，才进行了处理.&lt;/p&gt;
&lt;p&gt;首先，通过联合两个表时，查询得到的是如下的数据&lt;/p&gt;
&lt;p&gt;其中各个属性名称都在 “属性”列中，值在其对应的值列中；&lt;/p&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2010/11/sqltemp1.jpg"&gt;&lt;img class="aligncenter size-full wp-image-66" title="sql图1" src="//fukun.org/wp-content/uploads/2010/11/sqltemp1.jpg" alt="sql图1" width="670" height="389" srcset="//fukun.org/wp-content/uploads/2010/11/sqltemp1.jpg 670w, //fukun.org/wp-content/uploads/2010/11/sqltemp1-300x174.jpg 300w" sizes="(max-width: 670px) 100vw, 670px" /&gt;&lt;/a&gt;&lt;a href="//fukun.org/wp-content/uploads/2010/11/sqltemp1.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;现在需要将各个属性名称放到行中，最后到处结果到excel中。&lt;/p&gt;
&lt;p&gt;所以需要进行处理，经过思考，我觉得只有用游标才可以实现，所以使用游标进行了处理，最后处理出的结果如下：&lt;/p&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2010/11/sqltemp2.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="//fukun.org/wp-content/uploads/2010/11/sqltemp2.jpg"&gt;&lt;img class="aligncenter size-full wp-image-67" title="sql语句2" src="//fukun.org/wp-content/uploads/2010/11/sqltemp2.jpg" alt="" width="670" height="218" srcset="//fukun.org/wp-content/uploads/2010/11/sqltemp2.jpg 670w, //fukun.org/wp-content/uploads/2010/11/sqltemp2-300x98.jpg 300w" sizes="(max-width: 670px) 100vw, 670px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;所使用的游标代码如下(为了安全考虑，替掉了真实的表名)：&lt;/p&gt;
&lt;p&gt;————————————————————————–&lt;/p&gt;
&lt;p&gt;Declare @tmpIdent int;&lt;/p&gt;
&lt;p&gt;Declare @tmpidentv varchar(20);&lt;/p&gt;
&lt;p&gt;declare @tmpName varchar(100);&lt;/p&gt;
&lt;p&gt;declare @tmpEmail varchar(100);&lt;/p&gt;
&lt;p&gt;declare @tmpType varchar(100);&lt;/p&gt;
&lt;p&gt;declare @tmpVar varchar(100);&lt;/p&gt;
&lt;p&gt;declare @tmpvalue varchar(100);&lt;/p&gt;
&lt;p&gt;CREATE  TABLE #tmp_cioall&lt;/p&gt;
&lt;p&gt;(&lt;/p&gt;
&lt;p&gt;ident int,&lt;/p&gt;
&lt;p&gt;[name] varchar(128),&lt;/p&gt;
&lt;p&gt;email varchar(128),&lt;/p&gt;
&lt;p&gt;user_type varchar(128),&lt;/p&gt;
&lt;p&gt;emailaddress varchar(128),&lt;/p&gt;
&lt;p&gt;Gender varchar(128),&lt;/p&gt;
&lt;p&gt;industry varchar(128),&lt;/p&gt;
&lt;p&gt;jobtitle varchar(128),&lt;/p&gt;</description></item><item><title>[asp] 小数的处理</title><link>https://fukun.org/archives/111551.html</link><pubDate>Mon, 15 Nov 2010 09:15:51 +0800</pubDate><guid>https://fukun.org/archives/111551.html</guid><description>&lt;p&gt;保留两位小数：Round()函数.&lt;/p&gt;
&lt;p&gt;Round(value,2)&lt;/p&gt;
&lt;p&gt;但是此时若为小于1的数字时，如0.65 ，从数据库中读出后，往往显示为.65  ，不带0&lt;/p&gt;
&lt;p&gt;可以用另外一个函数FormatNumber()，&lt;/p&gt;
&lt;p&gt;FormatNumber(value,2,-1)即可.&lt;/p&gt;
&lt;p&gt;这个函数中，-1处为 可选项。三态常数，指示是否显示小数值小数点前面的零&lt;/p&gt;
&lt;p&gt;-2 = TristateUseDefault – 使用计算机区域设置中的设置。&lt;/p&gt;
&lt;p&gt;-1 = TristateTrue – True&lt;/p&gt;
&lt;p&gt;0 = TristateFalse – False&lt;/p&gt;</description></item><item><title>什么是实模式、保护模式和虚拟8086方式</title><link>https://fukun.org/archives/111548.html</link><pubDate>Mon, 15 Nov 2010 09:14:17 +0800</pubDate><guid>https://fukun.org/archives/111548.html</guid><description>&lt;p&gt;1:实模式：寻址采用和8086相同的16位段和偏移量，最大寻址空间1MB，最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。&lt;/p&gt;
&lt;p&gt;2:保护模式：寻址采用32位段和偏移量，最大寻址空间4GB，最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式，这是在保护模式下的实模式程序运行环境。&lt;/p&gt;
&lt;p&gt;第一:实模式下程序的运行回顾.&lt;/p&gt;
&lt;p&gt;程序运行的实质是什么?其实很简单,就是指令的执行,显然CPU&lt;/p&gt;
&lt;p&gt;是指令得以执行的硬件保障,那么CPU如何知道指令在什么地方呢?&lt;/p&gt;
&lt;p&gt;对了,80×86系列是使用CS寄存器配合IP寄存器来通知CPU指令在内存&lt;/p&gt;
&lt;p&gt;中的位置.&lt;/p&gt;
&lt;p&gt;程序指令在执行过程中一般还需要有各种数据,80×86系列有DS、&lt;/p&gt;
&lt;p&gt;ES、FS、GS、SS等用于指示不同用途的数据段在内存中的位置。&lt;/p&gt;
&lt;p&gt;程序可能需要调用系统的服务子程序，80×86系列使用中断机制&lt;/p&gt;
&lt;p&gt;来实现系统服务。&lt;/p&gt;
&lt;p&gt;总的来说，这些就是实模式下一个程序运行所需的主要内容&lt;/p&gt;
&lt;p&gt;（其它如跳转、返回、端口操作等相对来说比较次要。）&lt;/p&gt;
&lt;p&gt;第二：保护模式—从程序运行说起&lt;/p&gt;
&lt;p&gt;无论实模式还是保护模式，根本的问题还是程序如何在其中运行。&lt;/p&gt;
&lt;p&gt;因此我们在学习保护模式时应该时刻围绕这个问题来思考。&lt;/p&gt;
&lt;p&gt;和实模式下一样，保护模式下程序运行的实质仍是“CPU执行指令，&lt;/p&gt;
&lt;p&gt;操作相关数据”，因此实模式下的各种代码段、数据段、堆栈段、中&lt;/p&gt;
&lt;p&gt;断服务程序仍然存在，且功能、作用不变。&lt;/p&gt;
&lt;p&gt;那么保护模式下最大的变化是什么呢？答案可能因人而异，我的&lt;/p&gt;
&lt;p&gt;答案是“地址转换方式”变化最大。&lt;/p&gt;
&lt;p&gt;第三：地址转换方式比较&lt;/p&gt;
&lt;p&gt;先看一下实模式下的地址转换方式，假设我们在ES中存入0x1000，&lt;/p&gt;
&lt;p&gt;DI中存入0xFFFF,那么ES:DI=0x1000*0x10+0xFFFF=0x1FFFF,这就是众&lt;/p&gt;
&lt;p&gt;所周知的“左移4位加偏移”。&lt;/p&gt;
&lt;p&gt;那么如果在保护模式下呢？假设上面的数据不变ES=0x1000,&lt;/p&gt;
&lt;p&gt;DI=0xFFFF，现在ES:DI等于什么呢？&lt;/p&gt;
&lt;p&gt;公式如下：（注：0x1000=1000000000000b= 10 0000 0000 0 00）&lt;/p&gt;
&lt;p&gt;ES:DI=全局描述符表中第0x200项描述符给出的段基址+0xFFFF&lt;/p&gt;
&lt;p&gt;现在比较一下，好象是不一样。再仔细看看，又好象没什么区别！&lt;/p&gt;
&lt;p&gt;为什么说没什么区别，因为我的想法是，既然ES中的内容都不是&lt;/p&gt;
&lt;p&gt;真正的段地址，凭什么实模式下称ES为“段寄存器”，而到了保护模式&lt;/p&gt;
&lt;p&gt;就说是“选择子”？&lt;/p&gt;
&lt;p&gt;其实它们都是一种映射，只是映射规则不同而已：在实模式下这&lt;/p&gt;
&lt;p&gt;个“地址转换方式”是“左移4位”；在保护模式下是“查全局/局部描述表”&lt;/p&gt;
&lt;p&gt;。前者是系统定义的映射方式，后者是用户自定义的转换方式。而它&lt;/p&gt;
&lt;p&gt;影响的都是“shadow register”&lt;/p&gt;
&lt;p&gt;从函数的观点来看，前者是表达式函数，后者是列举式函数：&lt;/p&gt;
&lt;p&gt;实模式：  F(es–&amp;gt;segment)={segment |segment=es*0x10}&lt;/p&gt;
&lt;p&gt;保护模式：F(es–&amp;gt;segment)={segment |(es,segment)∈GDT/LDT}&lt;/p&gt;
&lt;p&gt;其中GDT、LDT分别表示全局描述符表和局部描述符表。&lt;/p&gt;
&lt;p&gt;第四：保护模式基本组成&lt;/p&gt;
&lt;p&gt;保护模式最基本的组成部分是围绕着“地址转换方式”的变化增设了&lt;/p&gt;
&lt;p&gt;相应的机构。&lt;/p&gt;
&lt;p&gt;1、数据段&lt;/p&gt;
&lt;p&gt;前面说过，实模式下的各种代码段、数据段、堆栈段、中断服务程&lt;/p&gt;
&lt;p&gt;序仍然存在，我将它们统称为“数据段”，本文从此向下凡提到数据段都&lt;/p&gt;
&lt;p&gt;是使用这个定义。&lt;/p&gt;
&lt;p&gt;2、描述符&lt;/p&gt;
&lt;p&gt;保护模式下引入描述符来描述各种数据段，所有的描述符均为8个字&lt;/p&gt;
&lt;p&gt;节（0-7)，由第5个字节说明描述符的类型，类型不同，描述符的结构也&lt;/p&gt;
&lt;p&gt;有所不同。&lt;/p&gt;
&lt;p&gt;若干个描述符集中在一起组成描述符表，而描述符表本身也是一种&lt;/p&gt;
&lt;p&gt;数据段，也使用描述符进行描述。&lt;/p&gt;
&lt;p&gt;从现在起，“地址转换”由描述符表来完成，从这个意义上说，描述符&lt;/p&gt;
&lt;p&gt;表是一张地址转换函数表。&lt;/p&gt;
&lt;p&gt;3、选择子&lt;/p&gt;
&lt;p&gt;选择子是一个2字节的数，共16位，最低2位表示RPL，第3位表示查表&lt;/p&gt;</description></item><item><title>Object disabled –iis打不开asp文件</title><link>https://fukun.org/archives/111546.html</link><pubDate>Sun, 14 Nov 2010 16:23:56 +0800</pubDate><guid>https://fukun.org/archives/111546.html</guid><description>&lt;p&gt;没事研究了下iis lockdown ，运行了之后，&lt;/p&gt;
&lt;p&gt;结果发现iis无法再正常运行了，本来能用的asp网站打不开了。&lt;/p&gt;
&lt;p&gt;报错:Object disabled —   导致iis打不开asp文件&lt;/p&gt;
&lt;p&gt;在网上寻找解决办法，很多网站都给了一个解决方法，但是不行。&lt;/p&gt;
&lt;p&gt;这时候还是google发挥了它的优势，搜到老外的一个blog里去了，仔细的看了看，问题得到解决。&lt;/p&gt;
&lt;p&gt;主要做法是：&lt;/p&gt;
&lt;p&gt;Open the mmc for IIS, right click on the servername and choose properties&lt;/p&gt;
&lt;p&gt;Click Edit for Master Properties&lt;/p&gt;
&lt;p&gt;Choose the Home directory tab, click the configuration button&lt;/p&gt;
&lt;p&gt;Verify that App Mapping for .asp is C:WINNTsystem32inetsrvasp.dll if it&lt;/p&gt;
&lt;p&gt;is not then choose&lt;/p&gt;
&lt;p&gt;edit and make sure that it points to the above file.&lt;/p&gt;
&lt;p&gt;Then click apply&lt;/p&gt;
&lt;p&gt;大概就是说呢，选择网站的属性，选择主目录，点击下边的配置按钮，把asp文件的可执行文件路径选择到 C:WINNTsystem32inetsrvasp.dll ，然后应用，就可以了。&lt;/p&gt;
&lt;p&gt;其实呢，在运行iis lockdown的时候就已经看到日志里有说对asp文件的可执行文件操作了，不过没有注意，出问题了也没有仔细去想。。&lt;/p&gt;</description></item><item><title>利用javascript实现web页面刷新的方法</title><link>https://fukun.org/archives/111544.html</link><pubDate>Sun, 14 Nov 2010 16:21:07 +0800</pubDate><guid>https://fukun.org/archives/111544.html</guid><description>&lt;table&gt;
 &lt;tr&gt;
 &lt;td&gt;
 javascript refresh page&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; &amp;lt;p&amp;gt;
 Javascript刷新页面的几种方法：&amp;lt;br /&amp;gt; 1     history.go(0)&amp;lt;br /&amp;gt; 2     location.reload()&amp;lt;br /&amp;gt; 3     location=location&amp;lt;br /&amp;gt; 4     location.assign(location)&amp;lt;br /&amp;gt; 5     document.execCommand(&amp;amp;#8216;Refresh&amp;amp;#8217;)&amp;lt;br /&amp;gt; 6     window.navigate(location)&amp;lt;br /&amp;gt; 7     location.replace(location)&amp;lt;br /&amp;gt; 8     document.URL=location.href
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 自动刷新页面的方法:&amp;lt;br /&amp;gt; 1.页面自动刷新：把如下代码加入&amp;lt;head&amp;gt;区域中&amp;lt;br /&amp;gt; &amp;lt;meta http-equiv=&amp;amp;#8221;refresh&amp;amp;#8221; content=&amp;amp;#8221;20&amp;amp;#8243;&amp;gt;&amp;lt;br /&amp;gt; 其中20指每隔20秒刷新一次页面.
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 2.页面自动跳转：把如下代码加入&amp;lt;head&amp;gt;区域中&amp;lt;br /&amp;gt; &amp;lt;meta http-equiv=&amp;amp;#8221;refresh&amp;amp;#8221; content=&amp;amp;#8221;20;url=http://www.wyxg.com&amp;amp;#8221;&amp;gt;&amp;lt;br /&amp;gt; 其中20指隔20秒后跳转到http:页面//www.wyxg.com
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 3.页面自动刷新js版&amp;lt;br /&amp;gt; &amp;lt;script language=&amp;amp;#8221;JavaScript&amp;amp;#8221;&amp;gt;&amp;lt;br /&amp;gt; function myrefresh()&amp;lt;br /&amp;gt; {&amp;lt;br /&amp;gt;         window.location.reload();&amp;lt;br /&amp;gt; }&amp;lt;br /&amp;gt; setTimeout(&amp;amp;#8216;myrefresh()&amp;amp;#8217;,1000);&amp;lt;span style=&amp;quot;color: #008000;&amp;quot;&amp;gt; //指定1秒刷新一次&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;/script&amp;gt;
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 ASP.NET如何输出刷新父窗口脚本语句&amp;lt;br /&amp;gt; 1.   this.response.write(&amp;amp;#8220;&amp;lt;script&amp;gt;opener.location.reload();&amp;lt;/script&amp;gt;&amp;amp;#8221;);  
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 2.   this.response.write(&amp;amp;#8220;&amp;lt;script&amp;gt;opener.window.location.href = opener.window.location.href;&amp;lt;/script&amp;gt;&amp;amp;#8221;);   
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 3.    Response.Write(&amp;amp;#8220;&amp;lt;script&amp;gt;opener.window.navigate(&amp;amp;#8221;你要刷新的页.asp&amp;amp;#8221;);&amp;lt;/script&amp;gt;&amp;amp;#8221;)
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 JS刷新框架的脚本语句
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 &amp;lt;span style=&amp;quot;color: #008000;&amp;quot;&amp;gt;//如何刷新包含该框架的页面用  &amp;lt;br /&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;script language=JavaScript&amp;gt;&amp;lt;br /&amp;gt;     parent.location.reload();&amp;lt;br /&amp;gt; &amp;lt;/script&amp;gt;   
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 &amp;lt;span style=&amp;quot;color: #008000;&amp;quot;&amp;gt;//子窗口刷新父窗口&amp;lt;br /&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;script language=JavaScript&amp;gt;&amp;lt;br /&amp;gt;      self.opener.location.reload();&amp;lt;br /&amp;gt; &amp;lt;/script&amp;gt;&amp;lt;br /&amp;gt; (　或　&amp;lt;a href=&amp;amp;#8221;javascript:opener.location.reload()&amp;amp;#8221;&amp;gt;刷新&amp;lt;/a&amp;gt;    )&amp;lt;br /&amp;gt; &amp;lt;span style=&amp;quot;color: #008000;&amp;quot;&amp;gt;//如何刷新另一个框架的页面用&amp;lt;/span&amp;gt;  &amp;lt;br /&amp;gt; &amp;lt;script language=JavaScript&amp;gt;&amp;lt;br /&amp;gt;     parent.otherFrameID.location.reload();&amp;lt;br /&amp;gt; &amp;lt;/script&amp;gt;
 &amp;lt;/p&amp;gt;
 
 &amp;lt;p&amp;gt;
 如果想关闭窗口时刷新或者想开窗时刷新的话，在&amp;lt;body&amp;gt;中调用以下语句即可。&amp;lt;br /&amp;gt; &amp;lt;body onload=&amp;amp;#8221;opener.location.reload()&amp;amp;#8221;&amp;gt; 开窗时刷新&amp;lt;br /&amp;gt; &amp;lt;body onUnload=&amp;amp;#8221;opener.location.reload()&amp;amp;#8221;&amp;gt; 关闭时刷新&amp;lt;br /&amp;gt; &amp;lt;script language=&amp;amp;#8221;javascript&amp;amp;#8221;&amp;gt;&amp;lt;br /&amp;gt; window.opener.document.location.reload()&amp;lt;br /&amp;gt; &amp;lt;/script&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;/tbody&amp;gt; &amp;lt;/table&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>ASP Sendmail 报错 CDO.Message.1 错误 ‘80070005’</title><link>https://fukun.org/archives/111440.html</link><pubDate>Sun, 14 Nov 2010 15:56:10 +0800</pubDate><guid>https://fukun.org/archives/111440.html</guid><description>&lt;p&gt;asp发送邮件报错’80070005’处理，以前记录下来的。&lt;/p&gt;
&lt;p&gt;ASP Sendmail CDO.Message.1 错误 ‘80070005’&lt;/p&gt;
&lt;p&gt;报错如下：&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;CDO.Message.1 error ‘80070005’&lt;br /&gt; Access is denied.&lt;br /&gt; /*.asp, line 147&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;line147处是mail 的send方法。&lt;/p&gt;
&lt;p&gt;解决办法，安装smtp ，设置  c:inetpubmailrootpickup 的访问权限，要iis账户和everyone账户都拥有其读写权限才可以。&lt;/p&gt;
&lt;p&gt;国内技术交流沟通的站点真是太少了，，非得要跑到老外的网站上去一行一行看英语才能找到答案。。国人的悲哀啊。。。&lt;/p&gt;</description></item><item><title>凑关键字</title><link>https://fukun.org/archives/111434.html</link><pubDate>Sun, 14 Nov 2010 15:37:10 +0800</pubDate><guid>https://fukun.org/archives/111434.html</guid><description>&lt;p&gt;  话说，每天更新才能让搜索引擎更好的收录自己的站点，而且关键字要越多越好。但是今天又实在不知道该写点啥， 就随便写点吧~~&lt;/p&gt;
&lt;p&gt;  下午小玩了下跑跑，居然赶上了个网吧的IP，有免费的SR车，还算happy的娱乐了一把。&lt;/p&gt;
&lt;p&gt;  晚上的时候看了几页《Windows程序设计》，又看了会天草的破解教程，学习了会，感觉还算可以。&lt;/p&gt;
&lt;p&gt; 还是学习好啊，总感觉有学不完的东西，而且还很有乐趣，，以前在学校的时候为什么没有这种感觉呢。。。~~~&lt;/p&gt;
&lt;p&gt;  如果早就有这种觉悟，，把握在学校的时间，到现在，该是多大的一笔收入啊~~~~&lt;/p&gt;</description></item><item><title>苏丹禁用谷歌广告服务</title><link>https://fukun.org/archives/111329.html</link><pubDate>Sat, 13 Nov 2010 10:08:57 +0800</pubDate><guid>https://fukun.org/archives/111329.html</guid><description>&lt;p&gt;今天加班，因公司网络有诸多限制，所以没事找个代理来玩，随便找了个，居然是苏丹的，速度还可以，就用了~~&lt;/p&gt;
&lt;p&gt;偶然间竟然发现，访问不了谷歌的广告服务，【You are accessing this page from a forbidden country.】 囧rz~~~&lt;/p&gt;
&lt;div id="attachment_32" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/googleadforbidden.jpg"&gt;&lt;img class="size-medium wp-image-32" title="苏丹禁用谷歌广告服务" src="//fukun.org/wp-content/uploads/2010/11/googleadforbidden-300x94.jpg" alt="苏丹禁用谷歌广告服务" width="300" height="94" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 苏丹禁用谷歌广告服务
 &lt;/p&gt;
&lt;/div&gt;</description></item><item><title>向小雨童鞋的《Windows程序设计》致歉</title><link>https://fukun.org/archives/111223.html</link><pubDate>Fri, 12 Nov 2010 15:25:53 +0800</pubDate><guid>https://fukun.org/archives/111223.html</guid><description>&lt;div id="attachment_24" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/20101112158.jpg"&gt;&lt;img class="size-medium wp-image-24" title="20101112158" src="//fukun.org/wp-content/uploads/2010/11/20101112158-300x225.jpg" alt="20101112" width="300" height="225" srcset="//fukun.org/wp-content/uploads/2010/11/20101112158-300x225.jpg 300w, //fukun.org/wp-content/uploads/2010/11/20101112158-768x576.jpg 768w, //fukun.org/wp-content/uploads/2010/11/20101112158-1024x768.jpg 1024w, //fukun.org/wp-content/uploads/2010/11/20101112158-1200x900.jpg 1200w, //fukun.org/wp-content/uploads/2010/11/20101112158.jpg 1600w" sizes="(max-width: 300px) 100vw, 300px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 小雨童鞋的《Windwos程序设计》
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;  从小雨童鞋处借得此书是上周末的事了，到现在都要一周了，却还一直还放在当初借来的纸袋里，一直都没翻出来，只可惜最近加班加的太狠了。。一直都没机会看，刚刚小雨又传给我一个《Windows环境下32位汇编语言程序设计》的电子书，再不看书实在对不起小雨童鞋的热情相助了，，看书去了…………&lt;/p&gt;</description></item><item><title>关于Asp的一点小问题</title><link>https://fukun.org/archives/111219.html</link><pubDate>Fri, 12 Nov 2010 15:08:33 +0800</pubDate><guid>https://fukun.org/archives/111219.html</guid><description>&lt;p&gt;  这是昨天在为一个会议做注册页面时候发现的，由于主站采用的asp环境，所以会议注册也采用asp实现，很奇怪的一点是，我在制作完成，并测试成功后，告诉别人，他说也要测一测，我还觉得，真是多此一举，我已经测了好几次了，都成功了，能有问题么~&lt;/p&gt;
&lt;p&gt;  奇怪的事情果真发生了，在他的机器上注册的时候居然发生了错误，而且怎么试怎么出错~在我的机器上测试，又是注册成功。各种浏览器也都尝试了，还是不行，实在是令人纳闷，于是乎，我打算在他的机器上调试一下，就把IE选项的 “显示友好HTTP错误信息”关闭了，结果，居然成功了，再勾选上这个选项，又是错误。。&lt;/p&gt;
&lt;p&gt;  实在想不到，客户端的设置居然也能关系到程序的运行成功与否，真是长见识了，做为一名Developer,自己机器的IE选项肯定是一直将“显示友好HTTP错误信息”关闭的，而该选项默认为开启，所以，一般使用者都是在开启该项的情况下运行程序的，发生错误是在所难免的了。&lt;/p&gt;
&lt;p&gt;  最后检查程序，发现是对记录集rs操作有些问题，在rs.close后，set rs = nothing ；就会产生错误，关闭了IE的友好选项，该错误就被忽略，经过此事，我的最大收获就是：&lt;/p&gt;
&lt;p&gt;  1、客户端的IE设置居然可以影响到程序的运行。&lt;/p&gt;
&lt;p&gt;  2、做出来的程序一定要在多个不同环境下进行测试。&lt;/p&gt;</description></item><item><title>DigDeeply 的来历</title><link>https://fukun.org/archives/111212.html</link><pubDate>Fri, 12 Nov 2010 04:51:32 +0800</pubDate><guid>https://fukun.org/archives/111212.html</guid><description>&lt;div id="attachment_16" style="width: 210px" class="wp-caption alignright"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2010/11/diudiu.jpg"&gt;&lt;img class="size-full wp-image-16 " title="丢丢侠" src="//fukun.org/wp-content/uploads/2010/11/diudiu.jpg" alt="丢丢" width="200" height="200" srcset="//fukun.org/wp-content/uploads/2010/11/diudiu.jpg 200w, //fukun.org/wp-content/uploads/2010/11/diudiu-150x150.jpg 150w" sizes="(max-width: 200px) 100vw, 200px" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 丢丢侠海报
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;自初二时在学校门口外边的小地摊上看到《北京卡通》的丢丢侠连载，开始使用丢丢（DiuDiu）这称号到现在也有9年的光龄了，时间不算短了吧~~&lt;/p&gt;
&lt;p&gt;自己也想过要更换一个ID，但又很舍不得丢丢，遂把丢丢修改一下好了，打CS时名字一直用DD的简写，那么再把DD丰富一下，作为自己的新ID吧~&lt;/p&gt;
&lt;p&gt;新ID就叫做DigDeeply~~~，至于什么含义呢，首先就是字面上的吧~再深层次的含义有时间再仔细琢磨琢磨，赋予新的内涵~~~哦哈哈~~&lt;/p&gt;</description></item><item><title>留话给我</title><link>https://fukun.org/guestbook/</link><pubDate>Thu, 11 Nov 2010 16:04:08 +0800</pubDate><guid>https://fukun.org/guestbook/</guid><description/></item><item><title>Hello world！</title><link>https://fukun.org/archives/11112358.html</link><pubDate>Thu, 11 Nov 2010 15:39:32 +0800</pubDate><guid>https://fukun.org/archives/11112358.html</guid><description>&lt;p&gt;本来早就有想开个blog的意思&lt;del&gt;可以最近一直加班一直加班，晚上加班，周末加班……都没有时间弄了，今天抽出点时间来搞搞，在光棍节先上个线，也算给自己过节了&lt;/del&gt;二期再进行美化啥的~~哈哈。&lt;/p&gt;
&lt;p&gt;第一篇文章就叫Hello World了~~搞编程的都知道啥意思&lt;del&gt;下次再弄个Hello World v2.0~~~哈哈&lt;/del&gt; &lt;/p&gt;
&lt;p&gt;今天就到这了，赶紧再加会班先~~~&lt;/p&gt;
&lt;p&gt;祝自己节日快乐~~&lt;/p&gt;</description></item><item><title>仙三玩后感</title><link>https://fukun.org/archives/0716529.html</link><pubDate>Wed, 15 Jul 2009 16:33:37 +0800</pubDate><guid>https://fukun.org/archives/0716529.html</guid><description>&lt;p&gt;这两天闲得无事，便想找个游戏来玩，绝代双骄系列的能玩的都玩过了。。轩辕剑系列的下了一个，却没法玩，就没再下。然后就下了个仙三，仙剑系列我也算了老玩家，仅仅老玩家而已，并不是十分入迷，我在很早的时候就玩过仙一了，后来却并不是十分关注了，我玩的最多的还是绝代双骄系列，虽然后来的绝代三让我感觉并不很好，绝代前传倒是还可以，新绝代双骄之鱼戏江湖的破解版还没出来，，像我这样的学生玩家，自然暂时是不会去花RMB玩啦，等以后上班了吧，一定支持支持国产。。然后就是玩的轩辕剑系列比较多。。其次才是仙剑系列，仙剑迷不要朝我扔鸡蛋啊。&lt;/p&gt;
&lt;p&gt;前天晚上下的游戏，下了一个晚上，昨天开始玩的，一直不停的玩了两天。。&lt;/p&gt;
&lt;p&gt;现在玩游戏，跟以前的心境又是不一样，以前最开始玩游戏时，是为了娱乐，消遣；后来，开始体验游戏的剧情；后来又边玩分析游戏的构造思路；这两天，玩游戏，发现，收获最多的是如何做人。游戏中也有复杂的人际关系，为人处事，如何做人；从这游戏中，感受很深。。&lt;/p&gt;
&lt;p&gt;值得一提的是，我居然一下子就玩出了最完美的结局。呵呵，看来我还是有游戏天分啊。&lt;/p&gt;</description></item><item><title>The Last Exam For Examination-oriented education</title><link>https://fukun.org/archives/0703526.html</link><pubDate>Fri, 03 Jul 2009 10:23:08 +0800</pubDate><guid>https://fukun.org/archives/0703526.html</guid><description>&lt;div id="blogDetailDiv"&gt;
 今天上午，我大学生涯的最后一次应试考试，也是我的人生中的最后一次的为了考试而考试的考试。以后，我所面对的考试，就是为了自己，再也不会是为了考试。。。。&lt;br /&gt; 上了这么多年学，考了这么多次试，也算人生的一种经历。&lt;br /&gt; 上午坐在考场里，感觉颇多。&lt;br /&gt; 人就是这样，往往要失去了，才会知道它的重要性。不可能再得到的东西都是好东西，或许这就是人类犯贱的证明吧。&lt;br /&gt; 考试的科目是计算机网络，开头的选择题比较难，做了几个都没有把握，最后要交卷的时候，跟前后桌还对了对答案，发现前四个选择题居然都是不一样的答案，笑~~；后面的题比较容易，田老师都给划了重点，基本都没问题。题量不小，但是很快就做完了，而且依我的习惯，从来都是不检查，做了第一遍，该怎么样就怎么样了，我不愿意去浪费时间再做一遍。题做完了后，我也没有要提前交卷的意思，我宁愿多享受一下这最后一次考试的味道。看着窗外，天气很热，有两个人在打乒乓球，还有两个人在篮球场练习投球，偶尔会有一对情侣手牵手的路过篮球场；&lt;br /&gt; 很快，就有同学答完题，交卷离场了。&lt;br /&gt; 看着他们一个又一个的交卷，拿起自己的东西，离开，我突然有了毕业时分离的那种感觉，也许，不久的将来，一年之后的我们，大家就这样一个又一个离开，可能，再也不会见面。&lt;br /&gt; 最后一次，也是第一次，只是细细的体味考试的感觉，而不是去做题。&lt;br /&gt; 希望，明年我们分离的那个时刻，我能做个冷血动物，不会有任何感觉。、。。
&lt;/div&gt;</description></item><item><title>asp –小问题，大郁闷,fso覆盖问题</title><link>https://fukun.org/archives/0606521.html</link><pubDate>Sat, 06 Jun 2009 06:28:28 +0800</pubDate><guid>https://fukun.org/archives/0606521.html</guid><description>&lt;p&gt;在使用fso函数时，一直比较正常，使用fso复制文件都没有问题，但当在某处需要进行复制并覆盖原有的同名文件时，出了点小问题。&lt;/p&gt;
&lt;div id="attachment_522" style="width: 610px" class="wp-caption aligncenter"&gt;
 &lt;a href="//fukun.org/wp-content/uploads/2011/01/asp-fso-cover-replace.png"&gt;&lt;img class="size-full wp-image-522" title="asp-fso-cover-replace" src="//fukun.org/wp-content/uploads/2011/01/asp-fso-cover-replace.png" alt="asp-fso函数" width="600" height="140" /&gt;&lt;/a&gt;
 &lt;p class="wp-caption-text"&gt;
 asp-fso函数
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;运用这个fso函数覆盖时，我已经用了true参数，如果已存在目标文件，就进行覆盖。&lt;/p&gt;
&lt;p&gt;但是却总出问题。&lt;/p&gt;</description></item><item><title>admin的MD5加密值，admin888的MD5加密值，16位和32位</title><link>https://fukun.org/archives/0504376.html</link><pubDate>Mon, 04 May 2009 00:59:51 +0800</pubDate><guid>https://fukun.org/archives/0504376.html</guid><description>&lt;p&gt;admin MD5加密后的值：&lt;/p&gt;
&lt;p&gt;16位加密：7a57a5a743894a0e&lt;/p&gt;
&lt;p&gt;32位加密：21232f297a57a5a743894a0e4a801fc3&lt;/p&gt;
&lt;p&gt;admin888 MD5加密后的值:&lt;/p&gt;
&lt;p&gt;16位加密：469e80d32c0559f8&lt;/p&gt;
&lt;p&gt;32位：7fef6171469e80d32c0559f88b377245&lt;/p&gt;</description></item><item><title>asp –asp实现添加验证码,asp验证码原理,dw实现验证码</title><link>https://fukun.org/archives/0503374.html</link><pubDate>Sun, 03 May 2009 14:38:58 +0800</pubDate><guid>https://fukun.org/archives/0503374.html</guid><description>&lt;p&gt;asp添加验证码,asp验证码原理,dw实现验证码&lt;/p&gt;
&lt;p&gt;下载地址：&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="http://www.blueidea.com/articleimg/2005/08/2671/imgchk.rar" target="_blank"&gt;&lt;a href="http://www.blueidea.com/articleimg/2005/08/2671/imgchk.rar"&gt;http://www.blueidea.com/articleimg/2005/08/2671/imgchk.rar&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="ftp://dw8%2Ecn:dw8%2Ecn@dw8.cn/2005/imgchk/imgchk.rar" target="_blank"&gt;&lt;a href="ftp://dw8.cn:dw8.cn@dw8.cn/2005/imgchk/imgchk.rar"&gt;ftp://dw8.cn:dw8.cn@dw8.cn/2005/imgchk/imgchk.rar&lt;/a&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;该压缩包为 imgchk 文件夹 ，其中有三个文件：validatecode.asp，validatebody.fix，validatehead.fix&lt;/p&gt;
&lt;p&gt;主要即是为生成 验证码 服务的。&lt;/p&gt;
&lt;p&gt;将解压文件夹直接释放在需要在某页添加验证码的同目录下&lt;/p&gt;
&lt;p&gt;（比如 addnew.asp 需要添加验证码，该文件在 cnbruce 文件夹下，则将 imgchk 文件夹同时释放到 cnbruce 文件夹 中）&lt;/p&gt;
&lt;p&gt;2，添加显示验证码和输入框&lt;/p&gt;</description></item><item><title>asp —-插入数据时，报语法错误</title><link>https://fukun.org/archives/0503370.html</link><pubDate>Sun, 03 May 2009 12:58:21 +0800</pubDate><guid>https://fukun.org/archives/0503370.html</guid><description>&lt;p&gt;无法显示网页&lt;/p&gt;
&lt;div id="blogDetailDiv"&gt;
 &lt;p&gt;
 试图访问的网页出现问题，无法显示。请尝试执行下列操作：
 &lt;/p&gt;
 &lt;ul&gt;
 单击[url=javascript:location.reload()]刷新[/url]按钮，或稍后重试。&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;li&amp;gt;
 打开 localhost 主页，然后查找与所需信息相关的链接。
&amp;lt;/li&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
 &lt;/ul&gt;
 &lt;p&gt;</description></item><item><title>tomcat6.0.18 高版本不一定好</title><link>https://fukun.org/archives/0427366.html</link><pubDate>Mon, 27 Apr 2009 13:53:49 +0800</pubDate><guid>https://fukun.org/archives/0427366.html</guid><description>&lt;p&gt;高版本的不一定就是好东西，部署了一个jsp程序后，按要求的版本开始部署，安装tomcat的时候用了最新的6.0.18，但是部署好，链接了数据库后，总是报一个错&lt;/p&gt;
&lt;p&gt;exception&lt;/p&gt;
&lt;p&gt;org.apache.jasper.JasperException: /manage.jsp(79,39) Attribute value request.getAttribute(“keyWord1″) is quoted with ” which must be escaped when used within the value&lt;/p&gt;</description></item></channel></rss>