魏长东

weichangdong

正在查看: 2016年09月日志归档(第 1 页 / 共 17 篇)

关于本站

几经折腾,开始使用新浪的SAE,然后逐渐使用了SAE所有的一些附加功能,如计数器,memcache,storge仓库,kvdb,然后吧图片上传修改成上传到SAE的仓库里面,加水印等等。此时使用的域名是swordman.sinaapp.com,最后我买了www.weichangdong.com域名,因为SAE支持绑定自定义域名,就吧www.weichangdong.com绑定到了SAE上。

网站就这么运行着。。。。

直到有一天发现,SAE的中级开发者云豆不送了,哎,眼看着没有下锅的米了(因为开启的mysql,kvdb,memcache等,挺耗费豆豆的),从网上看到redhat有免费的空间可用。如是呼就转战redhat的openshift。

其实openshift也挺好的。不仅可以ftp到空间,还可以登录linux系统,相当于云主机了啊。但是缺点嘛,就是在国内访问比较慢,而且没有SAE那样附属的一些服务。

openshift也支持自定义域名,如是呼,以wcd-wcd1986.rhcloud.com这个为网址的域名又活了起来。因为没了SAE的仓库存储图片,就把图片上传改成使用七牛的了。

»»阅读全文

用iPad写文章

心里的期待(☉_☉),一直只是期待。

或许又面临抉择,去留茫然。

是安逸的低头行走还是去找一天条快速奔跑的新路。

不管结局如何,告诫自己,勇于尝试,勇敢面对。

对58的996看法

个人是不太喜欢加班的,因为我觉得自己对工作一向雷厉风行,不会拖拖拉拉,只要开始干,就像吃了炫迈一样,根本停不下来。我上班,很少做于工作无关的事,只要有任务没有完成,都会在干正事。

除非有时候,没有工作任务,才会去折腾点自己的东西,博客啊,学习啊,很少聊天,因为没啥人可聊的。

如果非要按照死形式996,那么只能让人养成磨洋工的习惯,或者说让人去学会磨洋工,咋样把一天能完成的工作,分成两天三天来完成。

有些公司,对人的评价就是看加班,如果有人早早下班,就认为是工作不饱和,那些技术不咋地,半天磨一个功能的人,反而觉得是很卖力。但是岂不知,早下班的人两个小时就干完了那些一天都搞不定的人。

所以本人喜欢分配工作制,这个工作多久完成,早完成剩下的就是自由时间。但是吧,还有公司,你干的快,很好,一干完,就有新任务给你,这也很蛋疼。虽说能者多老,但是也不能能者一直劳。当然这种现象还是很少滴。

如果一个公司,前景很好,或者刚创业不久,这种形式应该有用,毕竟大家都有事做,但是如果那这个来拯救公司,那只会死的更快。

发现自己只喜欢奔跑的工作节奏,一旦停下来就觉得有危机感,觉得日子很漫长。虽然这不算什么陋习,但是觉得这也不是什么好事,只能跟人打江山,却不习惯守江山。

From my apple pad

云主机和VPS的区别

VPS,虚拟服务器,就是在一台物理服务器(我们称之为母鸡)上根据某种虚拟方式划分出虚拟机,说白了,和你自己在你的电脑上装个Virtualbox,开几个虚拟机没啥区别。也就是说,这个VPS是依赖于这台母鸡的,一旦母鸡挂了,那你的VPS肯定会挂。另外,这台母鸡上的所有的VPS全部依赖于母鸡的资源,平分母鸡的资源(当然这要看VPS服务商如何去划分VPS了),共享母鸡的带宽,共享母鸡的CPU、硬盘、内存等等资源。也就是说,你在VPS里面看到的硬盘,就是存放在母鸡的硬盘上的某个很大的文件,所以VPS的磁盘IO是要看母鸡的硬盘好坏的,母鸡的磁盘越好,比如SSD,那么你的VPS的磁盘IO速度越高。同理,其他的资源,如带宽、CPU、内存也类似。那么,如果你在VPS里面写入一个文件,就是写到了母鸡的硬盘上,和你自己用台式机新建一个文件到你的硬盘上,基本没有区别。

»»阅读全文

smarty的extends

今天替换thinkphp的试图引擎Think为Smarty,发现thinkphp的extends挺神奇的,
开始用smarty的include替换,发现虽然效果差不多,但是一些细节还是不一样,最后发现,
这个extends不是简单单纯的包含文件进来。
还好,smarty也有extends这个函数可用。顺便研究了下smarty的extends函数。算是做这个枯燥
的事情(把之前php代码和静态html的模板文件,修改成使用smarty)的一点收获吧。

主要是block的使用,开始还以为这个是html的元素呢,原来他是smarty的元素。

jquery又一利器

<script type="text/javascript">
    $(document).ready(function() {
        $.formValidator.initConfig({autotip:true,formid:"myform",onerror:function(msg){}});
        $("#old_password").formValidator({empty:true,onshow:"不修改密码请留空",onfocus:"密码应该为6-20位之间",
oncorrect:"旧密码输入正确"}).inputValidator({min:5,max:20,onerror:"密码应该为6-20位之间"}).ajaxValidator({
            type : "get",
            url : "<{$smarty.const.__CONTROLLER__}>/public_password_ajx",
            data :"",
            datatype : "html",
            async:'false',
            success : function(data){ if( data == 1 ) { return true; } else { return false; } },
            buttons: $("#dosubmit"),
            onerror : "旧密码输入错误",
            onwait : "请稍候..."
        });
        $("#new_password").formValidator({empty:true,onshow:"不修改密码请留空。",onfocus:"密码应该为6-20位之间"}).inputValidator({min:5,max:20,onerror:"密码应该为6-20位之间"});
        $("#new_pwdconfirm").formValidator({empty:true,onshow:"不修改密码请留空。",onfocus:"请输入两次密码不同。",oncorrect:"密码输入一致"}).compareValidator({desid:"new_password",operateor:"=",onerror:"请输入两次密码不同。"});
    });
</script>

 

formValidator 很强大啊 有机会好好用用。这次是在别人的基础上改改,也算结识了一位新朋友。

解决thinkphp分页缓存bug

遇到一个问题,thinkphp框架用了smarty,用了缓存,造成分页有缓存,网上搜了下,好多人也遇到这种问题。

总体的解决思路是:smarty局部缓存的方法。以下方法,自己试了,可行有效。

php中自定义块

//smarty 3
// function declaration 如果使用是在类里面,就吧这个函数放到公共函数代码里面。不然会报错说
//找不到这个函数

function smarty_block_nocache ($param,$content,$smarty)
{
  return $content;
}
 
// register with smarty
$smarty->registerPlugin("function","nocache", "smarty_block_nocache");

Smarty3是用registerPlugin , Smarty2则是用register_block,我用的是smarty3.

但是这么做,有一点不方便就是,需要在代码里面重新调用Smarty类文件,所以下面这个方法更加好点。

给smarty写插件,函数,自己在n年前就已经干过了。

在Smarty/plugins目录下建一个文件 block.nocache.php 内容如下: 

<?php
function smarty_block_nocache($param, $content, $smarty)  
{  
      return $content;   
}  
?>

模板调用和上面一样。

Linux下区分物理CPU、逻辑CPU和CPU核数

㈠ 概念
           ① 物理CPU
               
              实际Server中插槽上的CPU个数
              物理cpu数量,可以数不重复的 physical id 有几个           
           ② 逻辑CPU               
              Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的
              信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了
              一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来
              逻辑CPU数量=物理cpu数量 x cpu cores 这个规格值 x 2(如果支持并开启ht)
              备注一下:Linux下top查看的CPU也是逻辑CPU个数              
           ③ CPU核数           
              一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的CPU              
              一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术 
   

㈡ 查看CPU信息          

          vendor id     如果处理器为英特尔处理器,则字符串是 GenuineIntel。
          processor     包括这一逻辑处理器的唯一标识符。
          physical id   包括每个物理封装的唯一标识符。
          core id       保存每个内核的唯一标识符。
          siblings      列出了位于相同物理封装中的逻辑处理器的数量。
          cpu cores     包含位于相同物理封装中的内核数量。

         1. 拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。

         2. Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。
         3. 每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理CPU有几个逻辑                      CPU,”cpu cores“指的是一个物理CPU有几个核。
         4. 如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
         5. 如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id不同,则说明这是一个多内核处理器。cpu cores条目也可以表示是否支持多内核。

»»阅读全文

简单的shell

#开始了一个任务,入库20160907的数据,但是这个任务需要执行很久,结束时间得到晚上的10点到凌晨3点之间。想入库完了接着入库20160908的
#,因为开始没有想到这个事情,所以只能是后补了。
#这个脚本的思路是,查询20160908的任务,如果有,证明开始跑08号的数据了,就直接退出。查询如果有20160907的任务,证明07的还没执行完,就
#在等等。等07的任务完了,就开始08的任务。
#脚本半小时跑一次。
re=$(ps  axf|grep  php|grep  'task_date=20160907')
re2=$(ps  axf|grep  php|grep  'task_date=20160908')
if [[ -z $re2 ]]
then
 echo  'no start'
else
 exit
fi
#echo $re
if [[ -z $re ]]
then
 echo 'ok'
 nohup /usr/bin/php xxx/wcd.sh md_data_import daily_task --time_types=day --task_date=20160908 >> log-import-20160908 & 
else
 echo "no ok"
 exit
fi