my blog my blog

Category: 网络杂记
奶小牛

奶牛当爹了,值得庆贺的一件事儿。已经有大半个月在忙了,没有任何心思做自己的事儿了,不,孩子现在是最重要的事儿了。

月嫂

对于月嫂,我是不敢苟同没有好坏之分的,虽然大部分月嫂会把自己份内的事儿做好,但是也绝对是能省则省,她们会告诉你尿不湿比戒子好,但是对于稚嫩的婴儿,红屁股很大原因也是因为尿不湿吧,还有就是婴儿不能经常洗屁屁,试想一下,如果你屁股上糊着尿液或者便便,然后干了,你会是什么感觉?所以呢,月嫂很多时候是对的,但是也不是全对的,自己的孩子还是得自己上心才行。怎么说,尽信书则不如无书。

名字

这也是一个大事儿,家里人想了半个多月还是定不下来,每个人都是有自己的想法的,想一家人认同还真的很难,就像自己的孩子,我选的名字都被否了,最后还是闹得不开心。我觉得吧,孩子的名字就该父母自己取,俩人同意就够了,家人参考参考就可以了,要不定个名字比什么都难。

眼屎

孩子一只眼总是被眼屎糊住,老是睡一觉就睁不开。处理方法就是生理盐水擦拭眼屎,擦干净后滴上托百士眼药水,一日三到四次,每次一到两滴,前提是不是出生后就眼屎严重,而且眼睛没有明显红肿,否则还是建议去医院找医生看。

最近还有好多事儿要忙,感觉没孩子的时候真的该好好享受生活,有了孩子感觉日子都过得比以前快多了。希望孩子健康成长,无忧无虑。

amazon s3针对用户共用bucket的policy

amazon s3的官方有一篇介绍文章,但是少了一个”,”,导致并不能成功导入。

amazon有提供policy的在线生成工具,地址是http://awspolicygen.s3.amazonaws.com/policygen.html

amazon针对用户共用bucket,指定用户目录的policy在https://aws.amazon.com/blogs/security/writing-iam-policies-grant-access-to-user-specific-folders-in-an-amazon-s3-bucket/

具体policy可以使用下方的policy

{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "AllowGroupToSeeBucketListInTheConsole",
      "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::*"]
    },
    {
      "Sid": "AllowRootAnd<shared-folder-name>ListingOfCompanyBucket",
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::<bucket-name>"],
      "Condition":{"StringEquals":{"s3:prefix":["","<shared-folder-name>/"],"s3:delimiter":["/"]}}
    },
    {
      "Sid": "AllowListingOfUserFolder",
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::<bucket-name>"],
      "Condition":{"StringLike":{"s3:prefix":
                  [
                       "<shared-folder-name>/${aws:username}/*",
                       "<shared-folder-name>/${aws:username}"
                  ]
               }
        }
    },
    {
       "Sid": "AllowAllS3ActionsInUserFolder",
       "Action":["s3:*"],
       "Effect":"Allow",
       "Resource": ["arn:aws:s3:::<bucket-name>/<shared-folder-name>/${aws:username}/*"]
    }
  ]
}

但是其实只保留最后两段是比较安全的,这样子无论是/根目录还是<shared-folder-name>共享目录都是不可以list的,只能list用户自己的名字命名的文件夹。

{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "AllowListingOfUserFolder",
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::<bucket-name>"],
      "Condition":{"StringLike":{"s3:prefix":
                  [
                       "<shared-folder-name>/${aws:username}/*",
                       "<shared-folder-name>/${aws:username}"
                  ]
               }
        }
    },
    {
       "Sid": "AllowAllS3ActionsInUserFolder",
       "Action":["s3:*"],
       "Effect":"Allow",
       "Resource": ["arn:aws:s3:::<bucket-name>/<shared-folder-name>/${aws:username}/*"]
    }
  ]
}

这样子可以非常安全的隔离用户,也不用为每个用户建立一个bucket桶,还是很方便的。经过奶牛的测试,ACL最好就用默认的private,这样子安全性会更高。

三十岁后悔的二十件事

马上三十岁了,看到了狠多真诚的答案,在我有限的人生经验中,错过可以说直接上一个阶层的机会,至今后悔不已,往事并不如烟。

一、

相信命,我反而认为信命并不是极致的悲观、灰暗和迷信,而是理性又成熟深刻的价值观,知道山外有山,才能云淡风轻,这个世界本质的是不公平,每个人的起跑线是不一样,个体的差异不为人的意志所转移,最终的结果大不相同,是客观事实,明白这个现实我们才能更好的活自己。

三十岁之后的使命是接受自己是一个普通人。

二、

趁早买房,越早越好,那些告诉你生活还有诗和远方,通通都是错的,害人不浅,成熟的观念是一定要先买房,越早越好,相信我们国家。在买房这件事上的错误判断让我需要多付出很多年的代价。只要经济在发展,城市化进程还在走,也许买房可能是这辈子最正确的决定。

三、

越早理财越好,有人说没有几十万就不要理财,去享受生活,去看看世界,去旅游,这些观点通通都是错的,年轻的时候一定要存钱,在没有结婚之前,把收入分成几个账户:消费账户,应急账户,储蓄账户。把50%以上的收入存起来,少折腾股票或其他投资,股市那点本金基本收益率和货币基金差不多,没必要折腾,老实存起来,你的账户数字越来越多,你的自信就会越来越多,你的思维就会越来越广。

四、

自我预期管理,降低自我预期的阀值,没有人可以随便成功,降低预期能让自己好过不少,至少在你失败的时候能够舒服一点,小的时候认为自己是最牛逼的,自己能够改变世界,长大世界的现实是残酷的,没有什么鸡汤,奇迹是不会发生在你身上,学会接受失败和面对现实。

我一以前认识的大佬,做到上市公司的高管了,这几年自己创业,凡事亲力亲为,用电话陌拜谈业务,对方三秒钟就挂了,他把这个事情发在了朋友圈,很难想象原来这样的大佬也需要自己这么去干。多问问自己凭什么是你?

五、

恋爱要参照最优停止理论,也就是说,前37%的人如果都不合适,那么之后的每一个只要比前37%的要好,那么果断的去结婚,爱情是有情饮水饱,真正的婚姻是门当户对,家庭合伙制是婚姻的本质,一定要选性格好的,性格好的女人比有钱、漂亮之类优势更加明显。

六、

不要和老板做朋友,很多时候打工的思维在于拼命的把事情做对,而老板更多的是做对的事情,所以在层次和思维上是不可能成为朋友的,跟老板称兄道弟那就犯了大忌,表面越好,后面撕逼的结果就更严重。开始很美丽,结束的没道理。

七、

不要裸辞,一不爽就裸辞,会让自己的生活陷入一片慌乱,而后面的日子会越来越难过,辞职的前提一定是你学习不到任何东西了,没有任何成长,公司很垃圾,否则万不得已,必须要找到下一份工作再考虑辞职。

八、

少买知识付费的课程,市面上99%以上的课程本质上都是垃圾,对你没有任何好处,所有的方法论和成功方式都不适合你,基本连可应用的场景都没有,知识付费本质上是在贩卖焦虑,收智商税,省下的钱不如加入一些优质的社群,重复读几本经典的书并做总结来的划算。

九、

买保险,重要的事情要想三遍,保险不是骗子,保险是你人生变故后的最后一根救命稻草,是人生规划中必不可少的环节,如果你的经济实力不是特别的好,一定要买保险特别是重疾险,买消费型不买分红型,如果是家庭一定要给家庭中经济实力最强的人以及家庭的老人买好保险,人的一生中80%以上的概率都会得癌症。

十、

练习写作,好的文笔比好的数学重要多了,数学本质上来讲学到高中基本可以用来闯荡社会,你想想你这些年的数学丢到哪去了,数学老师的棺材板压不住了。

而写作是人生的必修课,而且每个人都需要写作,工作中你写的总结,计划,报告,邮件,微信等等都是写作,好的文笔能让你有更多的收入可能,说改变人生都不算夸张,见过很多原本普通的人,靠写作最后财富自由。

十一、

学习一项特长,你回头想想,你最牛逼的技能是什么?搜肠刮肚都想不到的时候,那么真的要趁早开始刻意练习了,在竞争领域,垂直擅长的领域,你的特长能够让你保持足够的竞争力和优势。

而且不觉得有特长的人特别的酷吗?

十二、

及时止损,很多事都需要成本代价,很多事没有任何的必要,及时止损的思维是为了不陷入损失黑洞陷阱,不一错再错,捡了西瓜丢了芝麻,错了就错了,失败了就是失败了,及时抽离。

十三、

明白人生而孤独,孤独的人并不可耻,每个人都是孤独的,享受孤独,人不能真正的去理解另外一个人,能明白自己的只有自己。

十四、

培养独立思考能力,在当下信息泛滥的时代,拥有独立思考的能力极其重要,做事之前多想想,事情真相是什么?为什么是这样?为什么不是这样?还有什么其他可能性吗?多种的思维方式去考虑问题,别让你的脑子成为别人的跑马场。

十五、

锻炼身体,好的身体绝对是本钱,高手的对决中,笑到最后的是看谁身体好,能够把对方熬败,好的身体是一种稀缺的资源,职场上更加如此,拼实力以外更多的是拼精力和体力,你想想再不锻炼能拼的过90后00后吗?你还能通宵吗?

十六、

尽量选择买贵的东西,为什么这么说,其实《断舍离》的本质,除了让我们明白人和物品的关系以外,更重要的是,物品是有能量的,如果你享受不了贵的物品,本质上是你内心觉得配不上这个物品,贵的东西能让你更加的自信,吸引力法则,你敢买宝马3以后一定买的起保时捷卡宴。其他东西同理。

十七、

学会演讲,无论在哪种场合我们需要演讲,开会发言,谈话,谈判,社交等都是演讲,生活中高频接触使用的技能一定要多训练。开不了口,害羞,害怕,会让自己人生丢分不少。

十八、

有条件就选择创业,其实是趁年轻多去折腾,多去试错才能知道自己究竟适合哪个方向,创业是改变限制条件,选择别人,而不是被人选择,做制定游戏规则的人。

当然,如果错了没关系,大不了还可以回头,到了四十岁,上有老下有小,车贷房贷,那真正是把人生困死,动不了,想都不敢想。

十九、

学会和自己相处,和自己内心的小宇宙相处,不执拗,不纠结,不自责,远离颠倒梦想,找到自己才能找到世界,千万不要和自己过不去。

二十、

自信,盲目的自信这也是自信,自信能让自己获得更多的资源和快感,自卑会让自己失去很多机会,自信让人进步,自卑让人退步。

本文作者:木木酱的小江湖 ,转载却未能找出原文出处。

2018年总结

百度翻译总结是summary,我感觉用conclusion更贴切一些,今年感悟颇多。

刚才看电视剧《平凡的世界》,这是一部让我可以安静下来的电视剧,看过一遍,又在重看,拍的很好。

今年的思考很多,有过很多冲动,当然,我觉得有过更多的是想法,我不想再安于现状了。

人生到底该是个什么样子?我也不知道,现在,我只知时间金贵。有人说我很理想主义,确实是这样子,工作以来一直以为自己可以厚积薄发,但是发现厚积到是没做到,薄发就更不知道如何开始了。很无力,不知道该怎么开始,大概齐还是舍不得放下现在的安逸吧,但是说实话,现在的工作我真的是不想再做了,虽然我不知道我到底能不能成,能不能把自己的想法变成现实,但总归得试试看吧。在国企这种体制环境下,真的太难发育,跟自己的职业规划也相距颇远。

有时候想开个安逸的小店,就每天晒着太阳,有大把时间。

有时候就想写自己的程序,做自己看好的项目,一个人却很吃力。

最近喜欢上了一个字叫“芃”,感觉这才应该是一个人或者一个企业应有的态度。

关于亲情,友情,爱情以及2019年即将到来的baby,我心理上没做好太多准备,我可能一直都活在自己的世界里,很孤独。我希望每个人都是快乐的,每个人都可以一直笑。

我想做个有用的人,in other words,我想实现自己的人生价值,不想虚度人生,留下悔恨,已经错过了5年大好的人生,我还有多少5年可以浪费?

现在不止是有想法,也在回归,也在学习,只是慢一些,但希望结果不会让自己失望。我真心希望我可以有更多的时间去做自己喜欢的事儿,也有更多时间来陪伴我的家庭,我希望我可以有足够的精力来做这一切,我需要有精力,太需要了。这一年每天活得都很累,我想给自己放个假,思考下人生什么的。哪怕懒懒地睡上一个半月又能如何,只要能让自己振作起来又何尝不好。

2019年加油吧,奶牛。希望2018年的总结会让我在以后的日子里都如此充满动力。不悲观,做自己。

一篇PT入门教程,以M-Team为例

很久不更新了,写一下最近玩的PT吧。PT即Private Tracker,属于私有分享型种子下载,你需要在PT站点有注册会员,然后才可以下载。比较大的站点有M-Team,奶牛也就刷的M-Team.

1.注册

多数PT站点都是邀请制的,所以没有邀请码就无法进入,获取途径无二,一是有好友是注册会员,可以邀请你。二是可以通过捐赠的方式来获得,以M-Team为例,捐赠会员是$25.00美元。

2.新号如何过考核

考核的方面也就那么几个:分享率、上传量、下载量、魔力值。

先说分享率,这个就是你单个种子的上传量/下载量的比值,热门的种子可以快速提升你的分享率,尤其是新种,下载量大,提升分享率快。

上传量、下载量顾名思义就是你的上传和下载的数量,PT也好,BT也好,都是要有分享精神的,所以要求上传量越大越好,所以,下载完后不要停止做种。

魔力值提升是最慢的,也没有特别好的途径,不过我们仍旧有迹可循,达到自己的最大提升速度。以M-Team为例,首先M-Team官方的种子有额外加成,所以保持M-Team的官方种子做种可以额外获得魔力值。初级会员的魔力值计算:

0.7個魔力值 * 你的做種數 (做種數最多計14個)。

也就是说你至少要保持14个种子才会接近你的满魔力值增速,所以,提升魔力值就要挂不少于14个种子,最好要多挂M-Team的官方种子。大种子也有利于提升魔力值。

最最关键的是魔力值是靠时间而不是你的上传量,所以你最好有NAS机器,通过NAS来挂,那样子就24小时魔力值都在增长。

上传量其实也很好刷,M-Team打开实验室功能,有成人模块,里面每天都限时很多免费的种子,这是提升上传量比较快的方式。

新手一定不要追求下载量,而要追求上传量,分享率过低会被封号,这里的分享率是总分享率,即你的总上传/总下载。

好吧,就写这些吧,希望奶牛的教程对PT新手朋友有帮助。

Blesta的Nginx规则

奶牛就做个小记录,blesta的老大是apache的fun,所以nginx的规则我自己记录下:

server
    {
        listen 80;
        #listen [::]:80;
        server_name blesta ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/blesta;

include enable-php.conf;
 location / {
        error_page     404 = @blesta; #IF file doesn't exist
        log_not_found  off;
    }
    #Core rewrite
    location @blesta {
        rewrite ^(.*)$ /index.php last;
#       rewrite ^(.*)$ /index.php/(.*) /$1  permanent;
    }
        access_log off;
    }

这里的服务器是军哥的lnmp,就这么设置就ok了,但是还需要定义好一个fastcgi_param PHP_ADMIN_VALUE的参数,位于/usr/local/nginx/conf/fastcgi.conf,因为enable-php-conf会调用这个文件。

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/home/wwwroot/";

 

WordPress清除所有meta generators信息

奶牛最近用了The 7 主题,发现生成的页面中meta generators信息暴露太多,严重影响网站的安全,所以找了下如何清除所有wordpress的meta generators信息。只需要在主题的function.php文件中添加如下代码即可:

//Remove All Meta Generators
function remove_meta_generators($html) {
    $pattern = '/<meta name(.*)=(.*)"generator"(.*)>/i';
    $html = preg_replace($pattern, '', $html);
    return $html;
}
function clean_meta_generators($html) {
    ob_start('remove_meta_generators');
}
add_action('get_header', 'clean_meta_generators', 100);
add_action('wp_footer', function(){ ob_end_flush(); }, 100);

 

Cloudflare CND的正确开启方法

今天奶牛又尝试了下Cloudflare的CDN,发现这个CDN的正确开启方式有些特别。

当然,注册,添加网站到Cloudflare的后台都是正常步骤,然后更新NS服务器,最后,发现网站无法访问,问题就在SSL上面。

比如奶牛以前使用的是自己的SSL,但是Cloudflare并不认这一套,至少对免费用户是这个样子。没办法,只能等?

NO,直接让Cloudflare回源,就是overview里面的pause,直接暂停掉Cloudflare的CDN,然后回源,等什么时候SSL在Crypto标签中显示

Status Active Certificate

的时候,再把CDN设置为启用状态即可。

Linux使用Curl并启用cookie功能

奶牛最近发现有的网站为了阻止第7层网络的攻击,选择了使用cookie进行阻止恶意攻击。比如Voxility在防护启用的时候,就会用如下的方式:

<html>
<head><meta http-equiv="refresh" content="1" /><meta http-equiv="cache-control"                                                                                                                                                              content="max-age=0" /><meta http-equiv="cache-control" content="no-cache" /><met                                                                                                                                                             a http-equiv="expires" content="-1" /><meta http-equiv="expires" content="Tue, 0                                                                                                                                                             1 Jan 1980 1:00:00 GMT" /><meta http-equiv="pragma" content="no-cache" /></head>
<script type="text/javascript">
<!--
function getCookie(w){
        cName = "";
        pCOOKIES = new Array();
        pCOOKIES = document.cookie.split('; ');
        for(bb = 0; bb < pCOOKIES.length; bb++){
                NmeVal  = new Array();
                NmeVal  = pCOOKIES[bb].split('=');
                if(NmeVal[0] == w){
                        cName = unescape(NmeVal[1]);
                }
        }
        return cName;
}
function printCookies(w){
        cStr = "";
        pCOOKIES = new Array();
        pCOOKIES = document.cookie.split('; ');
        for(bb = 0; bb < pCOOKIES.length; bb++){
                NmeVal  = new Array();
                NmeVal  = pCOOKIES[bb].split('=');
                if(NmeVal[0]){
                        cStr += NmeVal[0] + '=' + unescape(NmeVal[1]) + '; ';
                }
        }
        return cStr;
}
function setCookie(name, value, expires, path, domain, secure){
        var vlad = name + "=" + escape(value);
        if(expires){
                expires = setExpiration(expires);
                vlad += ";expires=" + expires;
        }
        if(path){
                vlad += ";path=" + path;
        }
        if(domain){
                vlad += ";domain=" + domain;
        }
        if(secure){
                vlad += ';secure';
        }
document.cookie = vlad;
}
function setExpiration(cookieLife){
    var today = new Date();
    var expr = new Date(today.getTime() + cookieLife * 24 * 60 * 60 * 1000);
    return  expr.toGMTString();
}
function delete_cookie(name){
  document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
// -->
</script>
<script type="text/javascript">
<!--
delete_cookie('hasVisitedSite');
setCookie('hasVisitedSite', 'Yes', '3', '/', '300', '');
delete_cookie('fb624561f4f8b25819e9b3c4fad70f85');
setCookie('fb624561f4f8b25819e9b3c4fad70f85', 'Yes', '3', '/', '300', '');
-->
</script><body></body></html>

如果我们直接curl加网址的话得到的就是这种情况。如果我们想访问真实内容需要启用cookie。

curl -c cookie.txt www.nenew.net
curl -b cookie.txt www.nenew.net

当第一次访问的时候,奶牛保存cookie信息在cookie.txt中,第二次访问包含cookie.txt中的信息,就可以访问到真实页面了。

Vultr最新活动$5美元玩儿一年VPS

最近的云主机活动挺多的,鲨鱼家的独服$59美元一年,Vultr又来了个$5美元可用一年VPS。根据Vultr官方的配置

1 CPU 512MB Memory 
20 GB SSD
500GB Bandwidth 
$2.50/mo

活动的价格是充值$5美元获得$25美元的帐号奖励,总共$30美元,用最低配置可以用12个月。而且Vultr还有个好处,就是可以随时删除实例,重建实例,这样子IP就可以随便换了,而且还有15个机房可选,性价比还是很高的。

此次活动仅限新帐号,注册地址:Vultr官网

活动代码已经包含在Vultr官网链接中。