2016年4月4日星期一

老话题,Ioc和DI啥区别

概念问题,一直觉得差不多
别人一问,也说不清差别
查一下
能明确下来,https://blog.tonyseek.com/post/notes-about-ioc-and-di/
IoC是目的,就是为了控制反转,DI是手段,是实现控制反转的手段




2016年4月1日星期五

centos7里面tomcat要跑80,非root用户

其实很简单,直接将80的请求,转发到8080就完事了

iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

压缩js时出现的问题

非压缩时,跑得好好的,压缩后,angualr的inject就不好使了,这种问题有时候真的很头痛,这也是angular的难搞的地方,到底哪个注入失败,看不出来。

追代码
发现
function configAngular($compileProvider) {
    'ngInject';
    $compileProvider.debugInfoEnabled(true);
} 
这样是没问题的
如果我注视掉
function configAngular($compileProvider) {
    'ngInject';
    //$compileProvider.debugInfoEnabled(true);
}
这样就有问题了,产生的js代码里,这个函数没有t.$inject这样的东西,uglify太聪明了,他认为这个函数是个空函数(啥也没干),就删掉了ngAnnotate产生的注入代码
configAngular.$inject = ["$compileProvider"];
了,虽然是个空函数,该注入的还是要注入啊,然后angular的函数有参数,却没有$inject,报错咯

明白了原因 ,就想到如何修改这个,
自然,注入了就要使用时到时最好,有没有别的法子来对付呢,我还得继续查查
https://github.com/mishoo/UglifyJS2
仔细看了Compressor options
没发现这样的参数可以对付这个情况
没法子,那就如何对付,我最后弄成这样的
function configAngular($compileProvider) {
    'ngInject';;
   //$compileProvider.debugInfoEnabled(true);
}
这样jshint会包一个警告,也就是ngInject后面多一个逗号
  line 98  col 16  Unnecessary semicolon.
于是我disable掉这个警告,大功告成,当然这个我只是用在app.config.es6里面
/* jshint -W032 */

2016年3月31日星期四

开发机11g的空间不够了,试着删了一下

开发机11g的空间不够了,得腾点空间来,想shrink表空,可是系统一直跑着,
先想到的是temp,我先add了一个datafile进temp后
ALTER DATABASE TEMPFILE '/ORADATA/sysdata/NKV2DDB/temp01.dbf' online
ALTER DATABASE TEMPFILE '/ORADATA/sysdata/NKV2DDB/temp01.dbf' DROP INCLUDING DATAFILES
第二部是会报错,系统又不能停,得找别的地方腾空间了。
在想搞undo,发现undo已经不在快满的分区 。

后来发现diag下面有太多的incident,空间还不少,于是就在这里下手了。

[oracle@NKV2DEVDB omdata]$ adrci

ADRCI: Release 11.2.0.1.0 - Production on Thu Mar 31 18:41:58 2016

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/ORADATA/app"
adrci> show homepath
ADR Homes:
diag/tnslsnr/NKV2DEVDB/listener
diag/rdbms/nkv2ddb/NKV2DDB
diag/rdbms/dup/dup
adrci>  show incident
这里输出太多了

adrci>  purge -age 14400 -type incident    
DIA-48448: This command does not support multiple ADR homes
还不让我做
adrci> set homepath diag/rdbms/nkv2ddb/NKV2DDB
adrci> show control
看一下
adrci>  purge -age 14400 -type incident 
这下ok了,删掉了很多。
adrci>  purge -age 14400 -type TRACE     
顺便也干掉了TRACE
adrci> set control (SHORTP_POLICY = 240),这是小时单位,1天
adrci> set control (LONGP_POLICY = 1095),1个半月
adrci> purge      

空间有了

2016年3月25日星期五

一台老机器,DL360 G5,不能从dvdrom启动

一台老机器,DL360 G5,打算用来做dmz,重做机器时,发现却不能从dvdrom启动。
一查,很多人都在问这个,却没有人提出解决法子
 方法一说,可以将SmartArray的逻辑盘删掉就可以,测试了几次,都一样,还是不行
http://d.hatena.ne.jp/showten/20040809
方法二说,需要回退bios,咋回退哦
http://community.hpe.com/t5/ProLiant-Servers-ML-DL-SL/DL360-G5-Won-t-boot-from-a-CD-listed-as-1-in-IPL/td-p/4218249

我试着做了一个usb的启动盘,再删掉了smartarray的逻辑盘,再reset bios to default,居然可以了。

2016年3月19日星期六

babel6里面,ie9,ie10的super不执行?

运气差,遇到了这个bug,babel5是ok的,一查,的确有

https://github.com/babel/babelify/issues/133

目前,我是用下面的法子解决的

{
  "presets": ["es2015"],
  "plugins": [
    "transform-es2015-modules-amd",
    ['transform-es2015-classes', {loose: true}]
    ]
}

2016年3月6日星期日

64bit data type

http://docwiki.embarcadero.com/RADStudio/Seattle/en/64-bit_Windows_Data_Types_Compared_to_32-bit_Windows_Data_Types