经典转载:程序员那些悲催的事儿

March 23, 2011 by SLJ | Category:Life | 1 Comment 2,223

今天公司的大力同学推荐了一篇很经典的文章,就转载了。正文如下:

在StakeOverflow上有这样一个贴子叫“Confessions of your worst WTF moment”(WTF就是What the fuck的缩写),挺有意思的,我摘几个小故事过来,希望大家在笑过之后能从中学到什么——所有的经验都是从错误中来的(我在其中加了一些点评)

我们公司的软件是给警察局用的,那是一个对用来处理被逮捕的人的系统,此系统还需要收集脸部特征和指纹信息,并且,这个系 统和会向FBI的系统提交这些信息。当我们在测试这个系统的时候,我们一般都是用我们自己的指纹,当然,数据库联着的是我们的测试数据库。不过,有一次, 在我们测试完后,我们忘了把系统切换回生产库,于是我们的测试数据库就联上了生产环境,于是我们的指纹信息和照片就散布到了其它系统中……清除我们警察局 这边的还好办,但是,你需要波士顿警察局警司去法院签字才能从FBI的数据库中清除我们的信息。
More »

分享两则我在VPS上执行的sh脚本

March 21, 2011 by SLJ | Category:Web Structure | 1 Comment 1,722

自从有了VPS,感觉自由多了。今天整理东西,分享两则我用在自己vps上自我感觉实用的sh脚本。

第一则的效果是,每当有用户登录服务器的ssh,就会发邮件到特定邮箱通知

第二则是穷人用的,没有钱买备份服务怎么办?那就申请一个免费的svn服务,我的是在unfuddle上。设置cron每日执行一次mysqldump并commit到svn库上去。出了问题手工去库里拣来恢复就是了。

 

第一则:登录ssh后自动发提醒邮件

在/etc/bashrc文件中添加 存有以下脚本的可执行权限的文件的地址。

#!/bin/sh

sendmail -t >/dev/null 2>&1 <<EOF

To: 接本邮件的地址@domain.com

From: 随便@domain.com

Subject:$USER@`hostname` login from ${SSH_CLIENT%% *}

EOF

第二则:每日自动备份MySQL中全部数据库并同步到svn库中实现异地拥有版本库的备份

进 crontab -e 添加 存有以下脚本的可执行权限的文件的地址。

More »

总结: MySQL主从复制 – MySQL Replication

March 19, 2011 by SLJ | Category:MySQL | No Comment 1,681

记:

最近在测试MySQL在高并发下连接失败的方法。在修改 max_connections 等等的方法后没有本质的提升,在PHP中的连接方法尝试retry也没有明显提升,用多个实例来分摊其实也是在同一个机器上抢占资源。只能从硬件方面学习了。一个有效的解决方法就是MySQL的主从replication.

在咨询过羽同学后得出以下结论:从服务器会异步从主服务器单向同步数据。update,insert等操作应在主服务器上进行。对于生产环境中实时性比较高的select操作应在主服务器上执行,其他select操作都在从服务器上进行。

 

==下面是转载==

MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。
More »

转: 10款iOS高效开发必备的Objective-C类库

by SLJ | Category:iPhone/Android | 2 Comments 2,824

因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活。不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作.经过作者团队的慎重讨论,他们 评选出了10款能够极大提高iOS开发效率的类库,根据原文作者的评价来看,基本上有了这10款工具,做iOS开发就真的跟泡Cocoa一样了。

MBProgressHUD——进展指示符库

苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore。而 MBProgressHUD提供了一个替代方案,而且在用户角度上,实现的效果根本看不出和官方程序有什么差别。同时还提供了其他附加功能,比如虚拟进展 指示符,以及完成提示信息。整合到项目里也很容易,这里不细谈了。

More »

博客顺利搬家linode,博客升级到wordpress3.1

March 1, 2011 by SLJ | Category:Life | 7 Comments 5,149

昨天终于是买下了linode的VPS,今天把博客移过来,用nginx + mysql + memcache组合,无拘束的感觉真是爽,还通过slow query日志把那个虚拟主机上查不到的涉及慢查询统计插件给删了!同时也把wp给升级到了3.0,解决了一些BOM产生的markup错乱后,大家有没有觉得现在的速度比以前快很多呢?

PS,当然,vps要发挥最大用处,建了一个PPTP VPS给自己偶尔用以用,哈哈。

最近工作很忙,很久都没发博客了,有兴趣的同学倒可以follow me:

新浪围脖@申力军

由于某些不开心的经历已经结束了与美国的合作。 至于新计划,以后再公布吧。

PHP 实现多服务器共享 SESSION 数据

February 24, 2011 by SLJ | Category:PHP, Web Structure | 1 Comment 2,369

PHP 实现多服务器共享 SESSION 数据

一、问题起源

稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全部通行的问题,映射到技术上,其实就是各个服务器之间如何实现共享 SESSION 数据的问题。

More »

转购买安装Godaddy SSL证书以及Nginx配置HTTPS方法

by SLJ | Category:Apache/Nginx, Web Structure | 7 Comments 4,612

一、购买 Godaddy SSL 证书

我买的是最便宜的一款,用优惠码 cjcssl12t2 以后 12.99 美元一年 ,购买地址: http://www.godaddy.com/gdshop/ssl/ssl.asp?isc=cjcssl12t2

二、生成服务器的 CSR 文件

用 root 权限进入服务器,输入:

openssl genrsa -des3 -out <name of your certificate>.key 2048

openssl req -new -key <name of your certificate>.key -out <name of your certificate>.csr

(必须是 2048 ,Godaddy 规定如此)

按照要求填写正确的信息

(Godaddy 帮助页面有相关帮助:http://help.godaddy.com/topic/746/article/5269

More »

转载:HTTPS的七个误解(译文)

by SLJ | Category:Web Structure | No Comment 1,382

开发网页的时候,往往需要观察HTTP通信。我使用的工具主要有两个,在Firefox中是Firebug,在IE中是Fiddler。但是,一直听别人说,付费软件HttpWatch是这方面最好的工具。

前几天,HttpWatch的官方网志刊登了一篇好文章,澄清了一些HTTPS协议容易产生误解的地方。学习之后,我增长了不少网页加密通信的知识。

我觉得这篇文章很实用,值得留作参考,就翻译了出来。

HTTPS的七个误解

误解七:HTTPS无法缓存

许多人以为,出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。

More »

JavaScript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)

December 23, 2010 by SLJ | Category:HTML/CSS, Javascript | 1 Comment 2,480

转载一篇,这个有的时候还是很有用的,所以收藏一下

1、判断select选项中 是否存在Value=”paraValue”的Item
2、向select选项中 加入一个Item
3、从select选项中 删除一个Item
4、删除select中选中的项
5、修改select选项中 value=”paraValue”的text为”paraText”
6、设置select中text=”paraText”的第一个Item为选中
7、设置select中value=”paraValue”的Item为选中
8、得到select的当前选中项的value
9、得到select的当前选中项的text
10、得到select的当前选中项的Index
11、清空select的项

More »

[转] Redis几个认识误区

December 18, 2010 by SLJ | Category:NoSQL | No Comment 1,818

转自:Tim 后端技术

前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概括的那几个范围,James第一条经验“Design for failure”是所有互联网架构成功的一个关键。互联网系统的工程理论其实非常简单,James paper中内容几乎称不上理论,而是多条实践经验分享,每个公司对这些经验的理解及执行力决定了架构成败。

题外话说完,最近又研究了Redis。去年曾做过一个MemcacheDB, Tokyo Tyrant, Redis performance test,到目前为止,这个benchmark结果依然有效。这1年我们经历了很多眼花缭乱的key value存储产品的诱惑,从Cassandra的淡出(Twitter暂停在主业务使用)到HBase的兴起(Facebook新的邮箱业务选用HBase(2)),当再回头再去看Redis,发现这个只有1万多行源代码的程序充满了神奇及大量未经挖掘的特性。Redis性能惊人,国内前十大网站的子产品估计用1台Redis就可以满足存储及Cache的需求。除了性能印象之外,业界其实普遍对Redis的认识存在一定误区。本文提出一些观点供大家探讨。

More »

↑ Top