Stay hungry, Stay foolish

0%

从一个fork开始

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch ($pid = pcntl_fork()){
case -1:
die('fork failed');
break;
case 0:
$n = 3;
$msg = "child pid:".getmypid().PHP_EOL;
break;
default:
$n = 5;
$msg = "parent pid:".getmypid()." child pid is: ".$pid. PHP_EOL;
break;
}
for($i = 0; $i < $n; $i++){
echo $msg;
sleep(1);
}
Read more »

此笔记持续更新中……

路由

Laravel的路由是通过配置文件(app/Http/routes.php)来配置的,相对于根据控制器自动路由这种方式,更加灵活

获取当前控制器和方法

1
2
$currentAction = \Route::currentRouteAction();
list($controller, $method) = explode('@', $currentAction);

分组

1
2
3
4
Route::group(['namespace' => 'User', 'prefix' => 'user'], function(){
Route::get('/center',['uses' => 'IndexController@center'])->name('user/center');
Route::get('/join',['uses' => 'IndexController@join'])->name('user/join');
});
Read more »

array_flip比array_unique的效率要高(简直是吊打),但是前者并不是后者的替代品——前者仅限于整形和字符型这样可以被转换成int的类型。其实这两种类型基本能覆盖我们大部分的使用场景了。
Read more »

Zsh

mac下默认的shell比较弱,直接换成zsh吧,兼容bash、更高效、更好的自动实例、可定制性高……

安装

  • 查看mac下是否支持
1
2
✗ more /etc/shells | grep zsh
/bin/zsh
  • 安装oh-my-zsh
1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Read more »

话说windows与其他系统相处说会有那么些不和谐的事——乱码与换行(自行百科),下面实例记录一下解决办法.

Office Excel里的一些数据(直接复制过来):

1
2
3
4
5
6
7
8
9
10
曼谷	3049072	泰国	亚洲
清迈 2941909 泰国 亚洲
普吉岛 2914508 泰国 亚洲
首尔 2479881 韩国 亚洲
东京 2144100 日本 亚洲
新加坡 1803367 新加坡 亚洲
大阪 1513988 日本 亚洲
亚庇 1503552 马来西亚 亚洲
济州岛 1235938 韩国 亚洲
马累 1223937 马尔代夫 亚洲

直接另存为csv文件

在Terminal下打开显示乱码

1
Âü¹È;3049072;Ì©¹ú;ÑÇÖÞ^MÇåÂõ;2941909;Ì©¹ú;ÑÇÖÞ^MÆÕ¼ªµº;2914508;Ì©¹ú;ÑÇÖÞ^MÊ׶û;2479881;º«¹ú;ÑÇÖÞ^M¶«¾©;2144100;ÈÕ±¾;ÑÇÖÞ^MмÓÆÂ;1803367;мÓÆÂ;ÑÇÖÞ^M´óÚæ;1513988;ÈÕ±¾;ÑÇÖÞ^MÑDZÓ;1503552;ÂíÀ´Î÷ÑÇ;ÑÇÖÞ^M¼ÃÖݵº;1235938;º«¹ú;ÑÇÖÞ^MÂíÀÛ;1223937;Âí¶û´ú·ò;ÑÇÖÞ

iconv直接一步搞定乱码

1
iconv -f GB18030 -t UTF8 test.csv > test1.csv

再次打开后乱码的问题没有了

1
曼谷;3049072;泰国;亚洲^M清迈;2941909;泰国;亚洲^M普吉岛;2914508;泰国;亚洲^M首尔;2479881;韩国;亚洲^M东京;2144100;日本;亚洲^M新加坡;1803367;新加坡;亚洲^M大阪;1513988;日本;亚洲^M亚庇;1503552;马来西亚;亚洲^M济州岛;1235938;韩国;亚洲^M马累;1223937;马尔代夫;亚洲

等等,为什么变成一行了?还多了一个^M是什么?原来是换行符导致的

这次用VIM的替换命令吧

1
%s/^M/^M/g

第一个^M的输入是依次按下Ctrl+vCtrl+M,第二个^M的输入是依次按下Ctrl+v换行键,

再看一下:

1
2
3
4
5
6
7
8
9
10
曼谷;3049072;泰国;亚洲
清迈;2941909;泰国;亚洲
普吉岛;2914508;泰国;亚洲
首尔;2479881;韩国;亚洲
东京;2144100;日本;亚洲
新加坡;1803367;新加坡;亚洲
大阪;1513988;日本;亚洲
亚庇;1503552;马来西亚;亚洲
济州岛;1235938;韩国;亚洲
马累;1223937;马尔代夫;亚洲

大功告成!

LXC是什么

LXC is the well known set of tools, templates, library and language bindings. It’s pretty
low level, very flexible and covers just about every containment feature supported by the
upstream kernel ——linuxcontainers.org

LXC是Linux Containers的简称,是一种基于容器操作系统级轻量级的虚拟化技术,相对于其他的虚拟化方案(如VMWare、Xen等硬件抽象级的),LXC的虚拟化开销小的多,能更大程度地利(zha)用(gan)宿主服务器的资源,因此得到许多公司的青睐,笔者当前就职公司就是其中之一

另外,当前比较流行的Docker就是基于LXC(Docker被用来管理LXC环境)

关于本文

本文源于14年年初笔者在部门内做的一次分享——《LXC与虚拟化》,重新整理了一下,发上来充个数,欢迎各位看官留言或邮件交流指点

本文不是一篇介绍LXC如何安装与使用的文章,而是介绍LXC背后的一些东西(rootfs、cgroup、namespace)、这些东西在linux系统中的使用以及LXC中如何实现的

Read more »

简介

Hadoop这个名词的火起让不少人恨不得马上安装好环境小试身手一番,虽然Map/Reduce应用程序并不十分复杂,但是仍然需要一些开发经验并且开发效率不高,Pig就是在这样的一种情况下诞生的,作为Hadoop生态环境比较高的一层,其由Pig Latin和运行Pig Latin程序的环境组成,提供易于编程、自动优化、可扩展等特性以提高开发效率,如:Twitter数据分析的80%以上的代码都是由Pig产生

背景

笔者使用Pig也仅仅数月。以移动APP应用的分析统计为例写下这篇入门级的实例,仅为了对阶段性的工作/学习做一个总结。如果能让刚接触Pig的同学从中受益或者能得到高手的指点,则荣幸之至

开胃菜

先以一个简单的程序来开始吧——统计每天的启动次数

1
2
3
4
5
6
7
8
9
start_log = load 'yidong.event_start' USING org.apache.hcatalog.pig.HCatLoader();
day_start_log = filter start_log by dateline == '$date';

day_start_d = foreach day_start_log generate appid,channel,platform,1 as start_num;
start_g = group day_start_d by (appid,channel,platform);
start_gd = foreach start_g generate FLATTEN(group),SUM(day_start_d.start_num) as start_num;
start_save_d = foreach start_gd generate appid,channel,platform,start_num;

STORE start_save_d INTO '/tmp/start_result' using PigStorage('\t');
Read more »

环境

  • Ubuntu 12.04 x86_64
  • php5.6.9

错误提示&解决方法

xml2-config not found. Please check your libxml2 installation.

1
sudo apt-get install libxml2-dev

Cannot find OpenSSL’s <evp.h>

1
sudo apt-get install libcurl4-openssl-dev
Read more »

安全原则

  • Secure By Default
    • 白名单/黑名单
    • 最小权限
  • 纵深防御
    • 不同层面、不同角度
  • 数据与代码分离
  • 不可预测性
    • 使用加密算法、随机数、哈希算法对敏感数据进行处理,以使其不可预测
Read more »

引子

  • 该书特色
    • 多人推荐(大多是我关注的人)
    • 内容少(204页),并且通俗易懂
    • 即重视“内功”,也介绍“招式”
Read more »