highcharts中对"另存为"进行汉化

$(function () {   
    var chart = new Highcharts.Chart({   
        chart: {   
            renderTo: 'container'  
        },   
       lang{   
                  printChart:"打印图表",
                  downloadJPEG: "下载JPEG 图片"  
                  downloadPDF: "下载PDF文档"  
                  downloadPNG: "下载PNG 图片"  
                  downloadSVG: "下载SVG 矢量图"  
                  exportButtonTitle: "导出图片"  
      },  
  .....
  })
})

windows下备份mysql数据库dos脚本

@echo off & setlocal ENABLEEXTENSIONS
:: ---------- 配置项 ----------
:: 备份放置的路径,加
set BACKUP_PATH=D:\Backup
:: 要备份的数据库名称,多个用空格分隔
set DATABASES=1688 abc ceshi
:: MySQL 用户名
set USERNAME=root
:: MySQL 密码
set PASSWORD=root
:: MySQL Bin 目录,加
:: 如果可以直接使用 dump(安装时添加 MySQL Bin 目录到了环境变量),此处留空即可
set MYSQL=D:\Progra~1\phpStudy\MySQL\bin\
:: WinRAR 自带命令行工具的可执行文件路径,长文件名注意用 Dos 长文件名书写方式
set WINRAR=D:\Progra~1\WinRAR\Rar.exe
:: ---------- 以下请勿修改 ----------
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
:: 如果在 dos 下输入 time 返回的不是 24 小时制(没有 0 填充),请自行修改此处
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
set DIR=%BACKUP_PATH%\%YEAR%-%MONTH%-%DAY%_%HOUR%%MINUTE%%SECOND%

set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%
:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)

if not exist %DIR% (
echo Backup path: %DIR% not exists, create dir failed.
goto exit
)
cd /d %DIR%

:: backup
echo Start dump databases...
for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqldump -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql
:: winrar
if exist %WINRAR% (
%WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>null
del /F /S /Q %%D.%ADDON%.sql 2>null
)
)
echo Done
:exit

 

 

gitlab安装-设置1-修改仓库(repositories)的位置

安装好gitlab后,要将仓库(repositories)放在一个大硬盘上,在ubuntu服务器上安装的默认位置为 /var/opt/gitlab/git-data/ 目录,需要修改仓库对应的目录

操作步骤:

1:新建新仓库目录

mkdir -p /mnt/application/gitlab/git-data

2:修改配置文件 sudo vi /etc/gitlab/gitlab.rb
搜索:git_data_dir 修改成:git_data_dir "新目录"
如:

git_data_dir "/mnt/application/gitlab/git-data"

保存
3:重新生成gitlab

sudo gitlab-ctl reconfigure

生成不报错,而且在新建仓库目录可以看到从下的目录,即修改成功。

gitlab 邮箱配置

默认情况下,gitlab用qq邮箱注册是发送不出确认邮件的。

下面说说gitlab配置腾讯企业邮箱

# vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "support@ttlsa.com"
gitlab_rails['smtp_password'] = "www.ttlsa.com"
gitlab_rails['smtp_domain'] = "ttlsa.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "support@ttlsa.com"

163邮箱

 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.163.com"
 gitlab_rails['smtp_port'] = 25
 gitlab_rails['smtp_user_name'] = "sunxintao@163.com"
 gitlab_rails['smtp_password'] = "4578101"
 gitlab_rails['smtp_domain'] = "163.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = false

重新加载配置

sudo gitlab-ctl reconfigure

发现目前qq邮箱已经不管用了,建议使用163邮箱

http://www.ttlsa.com/linux/howto-gitlab-using-qq-mailserver-send-mail/

多个项目在 Gitlab 中的组织方式

需求

按照 A_Company 目前的组织结构, 对于源代码的组织管理, 有如下需求:

  • 每个项目, 都隶属, 且仅仅隶属于一个部门
  • 每个员工, 可参与多个项目
  • 每个员工, 可参与不同部门的多个项目
  • 每个员工, 在不同的项目中可以有不同的权限

方案

  • 将 A_Company 的部门, 映射为 Gitlab 中的 Group
  • 将 A_Company 的员工, 映射为 Gitlab 中的 Member
  • 将 A_Company 的项目, 映射为 Gitlab 中的 Project

其中:

  • 每个项目, 都隶属, 且仅仅隶属于一个部门

  • 每个员工, 可参与多个项目 && 每个员工, 可参与不同部门的多个项目

  • 每个员工, 在不同的项目中可以有不同的权限

限制:

  • 不支持多级 group.
  • 不能将一个 group 的成员导入另外一个 group, 但可以将一个 project 的成员导入另外一个 project

参考资料

转自:http://liguanglei.name/blogs/2014/08/17/multi-projects-in-gitlab/

利用tcpdump抓取MySQL执行的SQL

http://ourmysql.com/archives/1358
编写脚本文件dumpsql.sh,内容如下:

#!/bin/bash
#this script used montor mysql network traffic.echo sql
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
    if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i)
    {
        if (defined $q) { print "$q\n"; }
        $q=$_;
    } else {
        $_ =~ s/^[ \t]+//; $q.=" $_";
    }
}

运行并抓去sql的执行。

抓取后在当前目录出现out.log文件,执行strings out.log即可看到sql的运行情况

Git rebase和Git merge的区别

git rebase主要可以用来保持树的整洁,当多个开发协同的时候,一个开发者进行了多次的commit完成开发后,进行远程合并操作,接着第二个开发者也开发完毕,也同样进行了多次的commit也进行远程合并提交。这里系统会根据提交时间来将两个提交信息重新排序,在review的时候会非常让人头疼。而使用rebase的话,会保持每个开发者的提交日志。先将当前开发者的commit 以补丁的形式记录下来,此时还原到原来最新的分支状态,然后重新拉取远程的同步信息(其它开发者的提交),最后在本地再次应用补丁,这里就保持了每个开发者的提交顺序,并非按原来的那种每个commit的时间来排序,非常方便review. 对于merge会存在多个分支及合并提交信息。

假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。

$ git checkout -b mywork origin

现在我们在这个分支做一些修改,然后生成两个提交(commit).

$ vi file.txt
$ git commit
$ vi otherfile.txt
$ git commit
...

但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了。 Continue reading

理解OAuth 2.0

客户端的授权模式

客户端必须得到用户的授权(authorization grant),才能获得令牌(access token)。OAuth 2.0定义了四种授权方式。

  • 授权码模式(authorization code)最完整、流程最严密的授权模式,如GitHub、微信等网站第三方登录方式
  • 简化模式(implicit)
  • 密码模式(resource owner password credentials)如目前手机APP中使用此模式
  • 客户端模式(client credentials)

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

 

swift中第三方网络请求库Alamofire的安装与使用

Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire。下面我们就介绍一个这个库的安装与使用。

一、安装包管理工具CocoaPods

由于国内容易被墙,速度也非常的慢,这里我们使用提供的源 http://ruby.taobao.org/

gem sources --remove https://rubygems.org/
gem sources –a http://ruby.taobao.org/
gem sources –l

ruby-taobao

先使用下面命令升级Ruby版本:

gem update --system

等待更新完成后。 Continue reading