记一次 php curl CURLOPT_FOLLOWLOCATION 的使用。。。

因为需求,需要爬虫跟随重定向,设置了 CURLOPT_FOLLOWLOCAT = true; 用 http://baidu.com 测试的。。百度不乖,没有跟随重定向。。在网上找到了两种方法,来查看 response header

$content = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
//$header = substr($content, 0, $header_size); 第一种
list($header, $body) = explode("\r\n\r\n", $content, 2); //第二种

发现没有 Location 字段。。加上 CURLOPT_USERAGENT 后,百度乖乖的奉上了 Location 。 终于可以一起愉快玩耍了。

我是有参考资料的人
php-curl-retrieving-response-headers-and-body-in-a-single-request

记一次不完整的社工

先获得的手机号, 第一步, 支付宝转账, 验证姓名, 添加通讯录, 通过各种社交软件修改查询通讯录的权限, 获取其在社交软件上的信息. 比如(微信啊 QQ啊 微博啦) 通过搜索引擎搜索手机号, 进一步挖掘有关网站泄漏的个人信息, 嗯, 以及其在网上的足迹. 不断优化搜索关键词… 使用一些搜索技巧, 比如site:域名 关键词 进行站内搜索 – 符号剔除不相干关键词 ….
其实好长时间没有写了, 水一波……
这次发现泄漏信息最严重的是招聘网站, 尤其实是啥广告都打的便民信息网站. 比如某集啦, site:{{分站}}.mouji.com/jianli/用户{{uid}}x.htm 除了联系方式之外的整个简历就出来了…. 其简历附件, 我见过获奖证书, 驾照, 语言证书… 嗯, 这些东西里有身份证号, 以及一寸免冠照…. 更不用说学历, 教育经历, 户口所在地, 巴拉巴拉的…..所以, 用过的东西的隐私设置一定要设置好. 不过招聘还是去正规的网站好, 相对注重用户隐私些, 虽然他也卖客户简历到别家招聘网站吧…. 一些招聘网站的企业用户, 嗯 也就是给hr用的账户, 还是很好的, 不掏钱不让看完整简历. 没错, 不经过企业认证, 有钱就能看…. 就不打六个点, 你打我啊 🙂
相对于银行卖信息啦, 购房卖信息啦, 外卖卖信息啦… 这些还是可以去避免的, 设置好隐私设置, 比较注重隐私的话就用两个手机号, 再注重的话那就准备多个身份, 哈哈, 多重人格…
嗯, 水够了. 放肆嗨

angular2 重构 wordnet-lite 总结

参照着angular.io上的 heros demo 重构的. 部分小特性没有加进来,视图重新渲染也有点小bug..后续再填坑

开始看了好几天angularjs.org 然后找了本angular2看, 用的typescript, 敲完一个demo, 想着怎么搞成纯js的, 无意中发现 一个是angularjs 一个是 angular2 … 彻底被自己打败了.. 最近不怎么在状态…压力有点大..

大约用了三天,开发环境以及gulp工作流都是参照官网的, 没怎么修改..惭愧..
第一天 环境配置以及shim.js zone.js等文件没有加载, 只加载了一个bundle.js…还没有设置base href属性, 浪费了小半天
第二天 粗心大意, 写模板的时候, *ngFor 语法写错了, 又浪费了半天. 仔细,要仔细
才发现gulp流中加入uglify不会拖慢再次bundle, 反而加快了浏览器jit的时间… 这又浪费了一些时间…
第三天 在服务中添加localStorage缓存, promise返回值问题, 又浪费了半天. 当初是在课上看的promise, 没怎么实践, 这就吃亏了

由于watchify没有显示tisfy编译错误, 导致gulp默认任务跑半天也没个结果…果断ctrl+c结束, 然后再开个panel tsc 直接显示错误, 修改完再执行gulp就可以了..
angular.io上的demo在组建构造函数中注入的时候, 没有加注解, 不知道怎么运行过去的… 找这个原因也浪费了点时间… 是我配置有问题么,求大神指点
export class component 的时候, 不注意拼写错了, 然后再另外一个文件 import 出错… 这个错误犯过几次..
在新建数据结构的时候, 异想天开搞了个嵌套另外一个自定义结构, 也是自己把自己作的.. 文件增多了, 也增加了歧义的几率…
模板绑定数据的时候, 想着修改下数据, 原来是直接取json内容, 然后array.join(‘, ‘) , 结果发现难度不小.. 不过直接在模板中输出数组, 自动添加了join(‘,’)…
模板在一个tag中写两个指令会报错, 可以在ng-container标记中写一个指令, 在这个元素中写另外一个指令

一定要吸取教训, 不要重蹈覆辙…

fedora 25升级小记

参照蓝点网的文章进行的升级,目前貌似cdn配置有问题,不能访问了。。。
他也是翻译的fedoramagazine。没啥问题,略做修改,很好很强大。
使用的中科大的源,最近这个延迟很尴尬啊。。看服务器状态是还在同步,清华的源也是。不过磨磨唧唧还是升级成功了。
升级过程中,删除了几个包,vlc,以及gstreamer1-libav 其他没注意。这两个被卸载是真不能忍。。。
下载安装rpmfusion,安装vlc

$ rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-rawhide.noarch.rpm 
$ yum install vlc

关于gstreamer1-libav这个包,这是个神奇的包,网易云音乐有了它瞬间满血复活。嗯,wine对这个包也是有影响的。
还有可能会因为gpg key的问题最后出错,在软件包签名密钥这里可以找到相关的密钥
实在找不到密钥,又确信不会被假包欺骗,可以在dnf参数中加入–nogpgcheck
升级完后又要把官方的repo文件移动出来备份,免得出现多次配置repo的错误提示,那几行字。。。
升级后Wayland确实好用不少,开机后进入桌面不花屏了,感觉显示更细腻了。

mysql 笔记

在这里先介绍下sqlite 超轻量级的关系数据库管理系统,以下大部分语句可以在其中执行。不过,最好还是自己装个mysql或者mariadb。
html5中有websql,它用的就是sqlite。so,准备了一个页面,可以直接在里面执行语句,由于sqlite的局限性,不支持存储过程。一些查询,视图,触发器,还是可以的。

#登陆
mysql -uroot -p

#列出所有数据库
show databases;

#创建数据库
create database databaseName;

#删除数据库
drop database databaseName;

#切换数据库
use databaseName;

#列出当前数据库内所有表
show tables;

#新建表
create table person (id int auto_increment primary key,LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255), year int);
/*
常用数据类型

数字类型	int float decimal
字符串类型	char varchar enum
日期类型	timestamp
*/
#显示表结构
desc tableName;

#清空表
delete from tableName;
truncate tableName;

#删除表
drop table person;

#修改表名
alter table person rename persons;

#添加新列
alter table persons add birthday date;

#删除列
alter table persons drop column birthday;

#修改列名
alter table persons change City 城市 varchat(255);

#查询数据
select 列名 from 表名 where 条件;
#连表查询 子查询 //以后再fake数据填坑。。。。

#插入数据
insert into tableName (filed,filed,filed) values (value,value,value)
insert into tableName values (value,value,value) /*必须按照表结构插入*/

#更新数据
update tableName set filedName = newValue where filedName = oldValue

#删除数据
delete from tableName where filedName = value;
#索引 视图 存储过程 触发器 //待填坑