腾讯云centos搭建SS

选择安装python版本SS,所以先安装pip

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py

安装shadowsocks

pip install --upgrade pip
pip install shadowsocks

编辑配置文件

vi /etc/shadowsocks.json

相关命令

#启动
ssserver -c /etc/shadowsocks.json -d start
#停止
ssserver -c /etc/shadowsocks.json -d stop
#重启
ssserver -c /etc/shadowsocks.json -d restart

chrome查询天气扩展

这礼拜任务完成的异常顺利,导致闲的有点不习惯,于是抽时间做了一个以前一直想做的事情。
所有的需求都是源于人们的懒惰,这句话一点都没错,自从我换了TIMQQ后发现以前经常用的一个天气查询功能没有了,每次我查天气都要打开天气查询网站手动查询,让我异常不爽,于是萌生了自己做个天气查询扩展的念头。
做之前我去chrome应用商店里查了以有的天气扩展,确认没有符合我需要的,于是动工。
过程就不多说了,无非就是查资料写接口之类的活,主要吐槽一下发现chrome62以上版本无法加载本地扩展,导致做完后发给同事才发现不能用,异常郁闷,我又不打算上架应用商店,只是个自娱自乐的练手做而已。
闲着无聊放出来给大家吐槽一下代码水平:https://github.com/TcZ1211/weather
效果:

vps+ss+finalspeed 无压力观看youtube1080P配置

首先vps请自行购买,操作系统选centos

ss安装:

wget --no-check-certificate https://down.upx8.com/shell/shadowsocks-go.sh
chmod +x shadowsocks-go.sh
./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log

卸载:

./shadowsocks-go.sh uninstall

配置文件:

vi /etc/shadowsocks/config.json

常用命令:

启动:/etc/init.d/shadowsocks start 
停止:/etc/init.d/shadowsocks stop 
重启:/etc/init.d/shadowsocks restart 
状态:/etc/init.d/shadowsocks status

ss地址

finalspeed使用91yun的finalspeed一键安装包:
安装:

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh

卸载:

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh uninstall

常用命令:

启动: /etc/init.d/finalspeed start
停止命令:/etc/init.d/finalspeed stop
状态命令(查看日志):/etc/init.d/finalspeed status
监控:tail -f /fs/server.log

客户端地址

Laravel学习笔记(一)

前段时间公司内部搞了一个个人阶段学习目标讨论会,我给自己定的目标是学会laravel并用它搭建一个简单的企业站后台,由于跟以前接触的框架感觉有很多不同的地方,所以决定搞个笔记记录一下,基本是学到哪记到哪,所以估计会比较乱,各位想看的话就麻烦将就看一下吧。

基本结构:
控制器文件写在app/http目录下,可自建子级目录,引用时注意。
访问控制器首先要在app/http/routes.php中声明地址,假设你在http下建了一个MyController文件夹,控制器名字叫MyController.php,那在routes.php有几种不同的声明方式,这里记录两种我暂时觉得比较常用的
一:

Route::controller('foo', 'MyController\MyController');

//隐式控制器。这种声明方式需要在控制器内部方法名的前面加上你希望的接收方式,比如getIndex,那这个访问MyController/index就只访问getIndex方法,假如你在index页面有个表单是用post方式提交的,那么在制定提交地址的情况下,默认提交地址应该是postIndex方法。
二:

Route::resource('foo', 'MyController\MyController');

//资源控制器。这种声明方式不需要定义接收方式,比如访问访问MyController/index,那就是直接访问index方法了。
常用引用类:

use DB;//数据库
use Auth;//权限控制
use Validator;//表单验证
use Illuminate\Http\Request;//表单提交
use Illuminate\Routing\Controller;//路由规则

post或者get的接收与laravel自带验证方式:

public function postIndex(Request $request)
{
    //print_r($request->all());exit();
    //单条值接收
    $name = $request->input('name','moren');
    //多个表单同时验证
    $validator = Validator::make($request->all(), [
        'name' => 'required|max:2',
        'body' => 'required|max:255'
    ]);
    //报错并提示
    if ( $validator->fails() ) {
        echo $validator->messages()->all();die();
    }
}

laravel 5.x多国语言包
https://github.com/TcZ1211/Laravel-lang

最近一个礼拜连被阿里坑两次,真的是无法用语言来形容我内心的感情。

第一次是有天晚上下班的时候同事突然发现我们开发的钉钉微应用突然全部都挂了,提示无权限。按理说一般情况下不可能出现这种大规模应用全挂的情况,肯定是服务商或者服务器出了什么问题,但是为了以防万一,我们还是把代码检查了一遍,果然发现没有问题。
没办法,我们去联系了钉钉的技术支持,一开始钉钉方面肯定的说是我们的调用方式出了问题。出你大爷啊,这些应用上了快一年了,毛问题没有,怎么可能突然调用就出问题了,我们就一条一条的把调用方式和返回结果给对方看,对方在沉默半小时后承认这是他们的BUG了,并承诺尽快修复,这时候已经快到晚上12点了,真是日了狗了。

第二次是昨天才发生的,我们在阿里的云服务市场上买了一个外接的api服务,我在调试的过程中发现有一类量较大的数据怎么都发送不成功,但是我又看不出来代码哪里出了问题,只能去找api提供方问问情况,对面看了我的代码和问题后也是一头雾水,表示看不出来任何问题。然后我们双方就找遍各种资料还问了无数的人,最后实在没办法了,服务商去找阿里云问问情况,然后阿里云告诉他们,数据过大,被限制了。我们双双表示日狗,这个问题搞了整整一天,导致计划内的任务没有完成,礼拜六加班…

总结:这个礼拜过的真累,想去日了阿里云

新年快乐~~

日子过的真快,刚祝福完元旦,新年就开始了
这个春节是在合肥过的,毫无年味,除了把一年没走的亲戚全走一遍外,跟普通的放假没有任何区别。不过多亏如此,这个假期可算是好好的休息了一次,回老家过年的话感觉要累很多。
话说公司年会90万礼物一分没捞到,年三十打牌输了200多,初一吃饺子没吃到元宝。感觉,不大妙啊。
总之,今天是鸡年上班第一天,祝各位新年快乐,工作顺利,身体健康,永无八哥~~

2017元旦快乐

今天是2017年上班的第一天,一早来到公司感觉比以往冷清很多,一看后台果然多了几个离职申请,大部分都是只干了一两个月的,不知道说些啥好…
照例,新年新气象,希望新的一年我能有更好的发展,也祝所有我的家人朋友能在新的一年里顺顺利利。

话说回来,元旦到过年的这段时间里真是没多大心思工作啊…(摊手

DataTables服务器端简单处理

DataTables是一个非常强大的JS前端表格框架,自带的功能就能满足基本绝大部分场景的需求,而且还有扩展功能可以加载第三方插件,非常值得大家一用。

这两天正好用到这个框架,自我学习的同时在这做个记录,主要是服务器模式下服务器端的排序与搜索处理,前端的处理文档已经很详细了,大家可以参照中文网学习。网址:http://datatables.club/

排序:

$order = $_GET['order'];
if ( !empty($order) ) {
    $order_column = $order[0]['column'];
    $order_dir = $order[0]['dir'];
}

//拼接排序sql
$orderSql = "";
if(isset($order_column)){
    $i = intval($order_column);
    switch($i){
        case 2:
              $ordersql = 'sequence '.$order_dir;//$i指定根据哪一列排序,需自己判断
              break;
        default: $ordersql = 'id desc';

    }
}else{
    $ordersql = 'id desc';
}

搜索:

$columns = $_GET['columns'];

//搜索配置
$where = '1';
if ( !empty($columns) ) {
    foreach ($columns as $k => $v) {
        if ( $v['search']['value'] != '' ) {
            switch($k){
                case 1:
                    $where .= " and sex='".$v['search']['value']."'";//$k对应的前端表格列数,需自己判断
                    break;
            }
        }
    }
}

最终拼接sql语句:

$sql = "SELECT * FROM `table_name` WHERE ".$where." ORDER BY ".$ordersql;