Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

在我印象里,我大概做了许多次这个事情了,拿到一台新的Linode,或者将某个Linode实例彻底清空而变成新的Linode,然后从0开始装成一个Web Server。本文,我就记录一下这个过程吧,省得以后用到了,又去各个服务器上拷贝。

阅读全文 »

其实一直以来都没把nodejs当成一回事情,看到广大前端同学那个雀跃劲,好像得到个宝一样。不就是又多了一个后端语言么?不就是语法跟js很像么?那又怎么样?其实后端语言多的很,node.js单从feature上看,貌似没什么绝对优势,要说有的话,我觉得就是js语法了~估计就这一点,就够博取一大票前端开发同学的好感了。

今天打开主页看了下,感觉还是不错的,小清新的一个技术,把Google的V8引擎一封装,然后弄套包管理,就吭哧吭哧上线了,制造一个技术,还真容易,难为那么多人为它写插件。

如今的互联网高度异构,然后大多数产品以服务形态出现,久而久之,服务的对接势将成为必然,又由于js浏览器端语言的天赋,所以很多Service都提供js调用的接口,如果说,有一门用js解释器来运行的后端语言,作为异构网络的粘合剂,那其方便程度可想而知了。从这个角度看,nodejs还真是解决了一大难题 呢!

其实很早就知道了GitHub,我看网站上的注册时间,竟然追溯到2010年的7月,那个时候,对Git很陌生,对GitHub更陌生,就知道是一个写代码的社区。连写代码,都可以弄个社区出来,实在是佩服老外的想象力。

阅读全文 »

说实在,我不知道,这个很少更新的博客,是不是还有人在阅读,或者说有读者在定期阅读,如果我是我博客的读者,大概我也要觉得无聊了吧,好吧~但是看着以前的文章的阅读量访问量,我觉得,我的有些文章还是给有些人,带来了一点效益的,但是如果说是什么乐趣,恐怕就有点自夸的味道了。

好吧,不调侃了。我的文章的访问量,为什么出现显著的下降,稍微一想,我也就明白了,以前的文章的访问统计,使用的是PHP进行的,现在我把全站的文章都静态化了,使用的是cos-html-cache插件,所以现在PHP没有什么机会运行了,这下,访问数量统计也不灵光了,如此而已,所以,我打算上一个基于JS的统计系统。或者直接拉取Google的analytics的统计数据,不知道那个的PV和CV是不是公开的数据呢?

能不能通过接口把每个网页的访问量给拉取回来呢?那样,我就省得架设一套统计系统了,回头调查一下,汇报给诸君~

如若有什么读者,有什么想说的,也不妨说一下,不然我真要当这里已经死寂沉沉了~

回想起第一次接触到WordPress,是什么时候呢?应该是大二的时候。事情的起因大概是这样的,那时候有个很火的产品,叫Space,是微软出品的,现如今,那个产品已经烟消云散了。当年Space火的时候,很短的时间,就有一伙人,将Space打理得有声有色,定制得完全不似是Space了,简直绚丽夺目,因为Space允许注入CSS和JS,你想那不就相当于万能么,而我那时候不知道有一伙人,叫Web工程师。

后来Space做出了一次重大改革,就是人人痛恨的Space改版,大体上是把Space改成了类似现今的Qzone一样的东西,页面都是模块化的,一个豆腐干一个豆腐干的,然后用户可以自由拖动,但是从此不支持CSS和JS的注入了。你想,一夜之间,所有的Space长得千篇一律了,shit!摔!

阅读全文 »

其实以前我遇到过Html表单里面的这个checkbox的问题,这个被定义成一个feature也可以,一个bug也未尝不可,至少我这么认为。

表单中的checkbox,只有在状态是on的时候,才会提交到服务器,否则相关键值不会提交。这个从语意上,貌似是没有错的,checkbox,翻译成复选框,就代表这个可有可无。那用户没有勾选的时候,没有任何东西提交上来,这很公平,合理,这是一个feature。

阅读全文 »

在Google搜索这个问题的答案的关键字 How to split a camel style string 或者更直接 split a string by capital letter

一般,这个功能的应用场景,至少有一个是用来做字符串映射,比如在某些框架里面,把类名映射成路径之类的,如果你用过,就会懂我在说什么。

PHP的header函数用来发送Http头信息,我在使用中,有个场景,就是代理请求的场景。

从服务器A代理请求服务器B,然后把B的回包透传回客户端浏览器。

这里面尤其重要的是Cookie,因为我要实现Cookie换域,因为Cookie种在服务器B的域名上,我要替换其种在A的域名上,于是就有了这么一个代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);

$temp = explode("\r\n\r\n", $result, 2);
$header = $temp[0];
$content = $temp[1];

$matches = array();
$ret = preg_match_all('#^Set-Cookie.*$#m', $header, $matches);
if ($ret) {
foreach ($matches[0] as $cookieinfo) {
$cookieinfo = str_replace('server.b.domain.com', 'server.a.domain.com', $cookieinfo);
header($cookieinfo); // <--- 陷阱就在这里,Set-Cookie不止一行,
// 但是header函数的第二个参数replace,默认是true,
// 所以,理论上只有最后一个cookie会被正确种上
// 这个bug困扰了很久,引以为戒,应改为header($cookieinfo, false);
}
}

微信是时下最为火爆的话题了,我也不能免俗地要来聊一聊微信了。没有什么独家,没有什么秘籍,就随便聊聊作为一个微信重度用户的想法,一个痛点。

我记得我是微信的第一万多名用户,那时候我还用的是诺基亚S60系列的E63,那时候微信上没什么人,也不好用,后来我紧接着买了Nexus S,然后微信的Android版本要好的多,不过还是没什么人,我同时也用米聊,但是都没啥意思,因为用的人不多。最后等到我换了iPhone,微信突然火爆了,就是火山喷发式的那种火爆。“摇一摇”只是催化剂而已,在互联网圈子里吹得很火,但是对于真实用户,摇一摇未必真那么神奇。

阅读全文 »