-

2014年11月21日 by 林贵南 | 留言 [2]

日常工作中,接触了Oracle,Essbase,也包括其他的二维数据库。 从存储方式来说, 主要有列存储, 行存储。

从应用来说:
行存储(比如Oracle,sql server,mysql,sqllite,。。。): 更适合OLTP,适合 更新、 插入,删除 的操作。
列存储(比如 Hbase,。。。): 更适合 OLAP, 查询方面比较厉害,适合商业智能分析。

从原理上来说:
行存储, 主要是按照 数据的行 存储在文件上。 因此, 如果对于有索引的查询条件,因为采用b-tree查询,所以针对这种情形在行存储上还是没有任何压力的, 如果没有索引, 那就必须要用到全表扫描, 需要浪费大量的IO。另外,因为是行存储,所以, 对于超级多的列的表格来说, 存储上就有压力, 这也就是早期的Oracle最多只能1024列,

列存储, 主要是按照 数据的列 存储在文件上, 因为对于超级大的表的存储也不会存在压力. 但是, 如果是对于这个表有大量的 插入, 更新, 删除 动作的话, 因为在数据存储上, 只是简单的清零动作, 存储空间要不断的扩展, 所以性能就会很差. 但是从查询的角度来说, 因为每次我们都会下命令 where id=2 类似的命令, 也就是告知数据库从 id 这列里头进行抓取, 这个查询过程就会超级快.

从未来的应用场景来说, 大数据只是个概念, 从技术角度来理解, 就是要针对不同的业务场景, 还是要针对不同的业务场景采用不同的数据库. 10年前, 可能自己搞个数据库会比较复杂, 随着技术的演化,目前也有很多的中国企业, 在研发着自己的数据库.

列存储数据库关键技术综述:
http://wenku.baidu.com/view/8e1ef7d128ea81c758f5789b.html

开源的列数据库(用于科研学习):
http://db.csail.mit.edu/projects/cstore/#overview

下次, 有针对性的再研究一下essbase的原理. 总觉得多维数据库是一个很有意思的东西, 应用也很重要的, 但是目前还有很多的缺陷.

-

2013年07月08日 by 林贵南 | 留言

Arch Linux ARM的crontab文件在哪里 ?

使用 crontab -e 命令可以编辑当前用户的crontab配置文件,但这个文件是位于何处?我更喜欢直接编辑它,因为我可以用我习惯的VI来操作。它是在 /var/spool/cron/ 目录下,用户名即为文件名,例如,root用户的 crontab -e 命令编辑的就是 /var/spool/cron/root 文件。

由于nginx 下面的php-cgi 有时候会莫名奇妙的关闭,然后会报 502 proxy error的问题, 所以, 写了个shell, 用来监控 php-cgi:

pi@jimmy:~/script$ cat monitor_php_cgi.sh 
#!/bin/sh 
 CMD=pgrep   #进程名 
 PPROC=php-cgi  #命令
if [ -n "`$CMD $PPROC`" ]
     then  echo "php-cgi is ok"
     else
        sudo php-cgi -b 127.0.0.1:9000 &
fi
同时, 在如下里头设定了 每隔3分钟检查一遍,意思是, 如果进程死掉了, 则会自动起来:
root@jimmy:/var/spool/cron/crontabs# ls
pi  root
root@jimmy:/var/spool/cron/crontabs# cat root
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.VKHBye/crontab installed on Mon Jul  8 00:19:55 2013)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
*/3 * * * * /home/pi/script/monitor_php_cgi.sh

-

2013年05月12日 by 林贵南 | 留言

前阵子在PI上折腾了一下motion, 用来监控小区的情况, 现在进一步折腾, 把监控到的文件同步到盛大的网络存储里头,有点意思。

http://www.grandcloud.cn/

1、盛大自己写的存储 cscmd 工具, 上传到服务器:
pi@jimmy:~/snda/cs$ pwd
/home/pi/snda/cs
pi@jimmy:~/snda/cs$ ls
config cs cscmd docs README

2、cscmd 使用 OpenGPG 工具提供对文件数据的加密方式访问,如果使用加密方式进行文件的
上传下载,则需要安装 OpenGPG
sudo apt-get install gpgv

3、在usr/bin 下建立一个软链接 ln -s cscmd /home/pi/snda/cs/cscmd

4、配置 cs.properties
pi@jimmy:~/snda/cs/config$ cat cs.properties

  1. The AccessKey is access_key_id in SNDA Cloud Storage
    AccessKey=XXXX

  1. The SecretKey is access_key_secret in SNDA Cloud Storage
    SecretKey=XXXX
  1. When SecureComm is False, use HTTP connection, otherwise, True means to use HTTPS connnection
    SecureComm=True

GPGPassphrase=XXXX

5、执行查询:
pi@jimmy:~/snda/cs/config$ sudo cscmd ls
2013-05-12 16:23 cs://jimmy2013

6、执行上传目录:
cscmd sync /tmp/motion cs://jimmy2013/pic

至此, 通过motion获取的图片和视频已经能定期加载到网络存储上面,有点意思。

-

2013年05月03日 by 林贵南 | 留言

原因
由于cgi设置请求的缓冲区过小造成的。 本次是由于程序调用的时候foreach里头的参数为空造成的。

方法

10、配置一些cgi的参数,在 nginx.conf 的http里头配置
        fastcgi_buffer_size 128k;
        fastcgi_buffers 8 128k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
20、查处cgi的进程,干掉:
pi@jimmy:/etc/nginx$ ps -ef | grep cgi
root      2221     1  0 07:45 ?        00:00:16 php-cgi -b 127.0.0.1:9000
pi        4906  2345  0 22:29 pts/1    00:00:00 grep --color=auto cgi
pi@jimmy:/etc/nginx$ sudo kill -9 2221
30、重启web server:
pi@jimmy:/etc/nginx$ sudo /etc/init.d/nginx restart
Restarting nginx: nginx.
40、重启fast cgi进程,问题解决
pi@jimmy:/etc/nginx$ sudo php-cgi -b 127.0.0.1:9000 &
[1] 4931

-

2013年04月30日 by 林贵南 | 留言

参照网上折腾, 折腾了一把, 可以通过摄像头做简单的家庭监控:

1、插上USB 摄像头, 查看 ls /dev 下是否出现 video0

2、安装motion并且配置:
Next we need to install the “motion” service. This is a package that contains everything you need to stream your cam over the internet and view it from any browser.

sudo apt-get install motion

Once the installation has completed we need to start the service.

sudo services motion start

If your web cam has a light on it, you should see it light up.

Now lets configure the motion software.

sudo nano /etc/motion/motion.conf

In here there are a few basic changes that you need to perform:

Daemon = OFF to ON
webcam_localhost = ON to OFF
webcam_port = desired port number or 8088
control_port = desired port number or 8089
To ensure that the motion service will actually start as a daemon we need to change another configuration setting, so enter the following:
sudo nano /etc/default/motion

Then change the value “start_motion_daemon=no” to “yes”
设置这个之后, 以后一开机, 就进行自动守护的程序。

sudo service motion restart

You can now open up a browser from another computer on the same network and go to: http://192.168.0.85:8088 to view your web cam.

You can remotely control the web cam settings by going to http://192.168.0.85:8089.

Power off the RPi, hook up the battery pack and turn it on. You should now only have the WiFi adapter and web cam plugged into the usb ports. Try viewing the cam from a web browser and walk around your house or even outside.

You will need to enable port forwarding on your home broadband router to the Raspberry PI on port 8088, that will mean you can access the web cam from anywhere in the world. You can also sign up with a service like www.dyndns.org.

3,糟糕的是, motion在如下的路径会不停地产生图片, 所以要写个脚本, 订个时间清除一下,或者把这个文件写入到磁盘上面去。
pi@jimmy:/tmp/motion$ pwd
/tmp/motion

4, 同时, 这个路径在chrome 上可以访问, 在普通的手机和IE上都没法访问, 也是个待解的问题。

-

2013年04月30日 by 林贵南 | 留言

最近在折腾这个东西, 把一些基本的安装步骤纪录一下:

10、启用SSH

20、安装远程桌面
sudo apt-get install xrdp

30、设置无线网卡为静态的IP地址
pi@raspberrypi:/etc/network$ cat interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
      wpa-ssid TP-LINK_ORA
      wpa-psk 12345678
address 192.168.1.250
gateway 192.168.1.1
netmask 255.255.255.0
 
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

40, 搭建一个nginx+php+mysql+dnspod动态解析 (转)
apt-get install nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server

pi@raspberrypi:/etc$ sudo init.d/nginx start
pi@raspberrypi:/etc$ sudo /etc/init.d/nginx reload

启动 php-cgi
pi@raspberrypi:/etc/nginx/sites-enabled$ sudo php-cgi -b 127.0.0.1:9000 &

为支持php-cgi 在机器启动的时候, 也能自动启动,把php-cgi -b 127.0.0.1:9000 & 加入到 /etc/rc.local ,加在exit 0 之前。

检测php是否启动

phpinfo();


-

2011年10月08日 by 林贵南 | 留言 [2]

经历了几个小时,终于取得阶段性战果, 可爱的P1i同学,陪伴我将近4年,带给我了无尽的开心和快乐,对她依然依依不舍,当年的先进武器,跟现在的所谓的3G也相差无几,只是差了一个GPS导航,这点令我深感遗憾。 在陪伴我的3年多的日子里头, 对于索爱的充电电器, 真是火大到底, 经过了这么多个日子的悉心陪伴, 充电的尾插终于在今天罢工不给力了。

找到问题的症结之后,开始对其下刀。 把一个佩带的充电器拆开一把,然后把尾插取下, 然后历尽不小的波折,终于把机器给完全拆开,然后经过一段波折终于搞定,小小高兴一把,至少有30元回报吧,呵呵。

最后,对索爱的尾插严重鄙视一把。 同时,给有遇到问题的同学提醒, 我不是很建议大家去拆这个机器,大家可以针对这个针脚,捅一捅,或者用锡粘贴一下,把这个针脚垫高,我想应该也可以解决问题。 希望给遇到同样问题的同学以提醒。

-

2011年09月25日 by 林贵南 | 留言 [524]

早晨的时候, 阅读了一下文档,
http://clearlinegroup.com/NewsDetail.php?BlogID=24
同时翻译成中文一下,分享给大家。

要点如下:
1. 明确和共识的需求
2,成本管理的概念
3,从业务部门抽取人员到项目组中来
4, 让用户尽量参与
5. 把该做的工作提前做
6,理解和准备数据
7,关于技术设计的第2观点
8。按周跟进项目状态
9。考虑离岸外包
10. 为相关的角色建立联络人
11. 谨慎使用内部支持开发
12. 不要雇佣一个顾问用来做长期的支持
13. 确保有内部安排
14. 有EPM Project Roadmap
15. 对用户培训
16.考虑你的EPM基础设施外包

Read more...

-

2011年07月10日 by 林贵南 | 留言

基尼系数 主用用来衡量国民的收入分配的, 其实在企业里头也一样, 我们遵循的观点是, 人人的工资都是和个人的级别相匹配的(我们假定级别已经完全能反映这个员工的贡献度了)。

我们通过如下的假定和计算:
假设有一家公司,有26000名员工, 每个月需要发放的工资为 390500000 元, 级别分成16个级别。 参见下图:
基尼系数计算
通过公式计算,我们可以获取这个公司的基尼系数为 0.22, 则反映的问题是,这家公司的工资分配相对平均的, 虽然最高工资跟最低工资之间差异为11倍,但是分配还是相对平均的,对公司的稳定有一定的指导意义。

上述的分析, 是主要用来探讨企业的工资分配是否合理。 如果要往下探究一下, 这些拿高工资的的员工, 是否应该拿高工资呢? 这个问题,其实只需要在原始的数据上加上一列, 员工对于收入的贡献度是咋样的, 然后画出类似如下的图。 下图缺少了员工的贡献度的的折线。如果各个Level的人的贡献度与下图折线基本一致, 则说明,这家公司的所有员工,都拿到了他们应该拿到的工资, 并且工资分配是平均的。
收入百分比

1, 参考Excel文件: 员工收入分配分析.xlsx
2, URL:http://www.tengxun.net/new/XXLR1.ASP?ID=6333

-

2011年07月03日 by 林贵南 | 留言

在6月份的时候,与Y公司做相应的财务信息化交流, Y公司为国内某金融公司,处于信息化的初始阶段:

有如下的几点规纳总结:

1, 一家企业的财务IT信息化部门, 是放在什么样子的部门合适?
见过不少企业, 是单独把IT部门与财务部门剥离出来, 形成2个独立的部门, 从结构上说,没有问题。 但是沟通中存在的问题是: 财务部门的思想和业务精神,往往不容易传递到IT部门。 同时,也见过财务部门是直接融合在财务部门里头, IT的话语权, 一般会小于财务本身的话语权,对于信息系统的推进,会有不少的阻力,如果这种阻力达到一定的程度的话,对未来的信息化系统推进是不利的,但是本身的优势也很明显, IT融入到财务里头去,成为一种工作的方式,工作效率提升的工具,跟财务部门走得很近。

2,企业财务的信息化的阶段性:
1) 第一阶段,一般企业都是先上一些 ERP系统, 走一下进销存过程。上了之后,一般企业都会对外界宣称, 某某企业也上了系统。
2) 第二阶段, 往往发现了某某系统存在的重大缺陷,特别明显的是,比如报销系统,各个企业的报销系统千奇百怪,所以就引出了一般企业的自己的报销,流程系统。
3) 第三阶段,一般有2个走向, 一个是第1个步骤里头的ERP系统上完之后, ERP系统运作是正常的,所以,很多企业说,需要有个统一支撑分析,汇总的报表平台,所以引入微软, IBM, Oracle,Sun ,SAP 等等公司的BI平台。另外一个走向是, 第1次的ERP的重新实施。
4) 第四阶段, ERP, 流程系统,BI系统的不段优化改善
5) 第五阶段, 引入 成本利润分析体系, 从战略层面来反思考投入产出分析。

当前,Y公司处于信息化的第2阶段。

3, 一般合理的企业财务信息化规划:
1) 财务的核算系统和预算体系要分开, 走2条线。
2) 核算体系里头,也要切分成2条线, 一条是收入线, 一条是支出线
3) 各套信息系统要有比较好的功能区分
如上3点区分,是区分得越细致越好,定位得也更清晰。