随笔 - 10  文章 - 0  trackbacks - 0
<2017年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿

随笔分类

随笔档案

收藏夹

调试技巧

搜索

  •  

最新评论

阅读排行榜

评论排行榜

1、本地安全策略,本地策略-安全选项,需要修改成默认的值的修改方式:
1)、在本地安全策略,本地策略-安全选项,网络安全:LAN管理器身份验证级别,如何修改成默认的“没有定义”运行regedit命令,打开祖册表编 辑器。
2)、查找注册表浏览到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
直接删除 LMCompatibilityLevel 键。确定删除后。
3)、运行secpol.msc命令。打开本地安全策略。
在本地安全策略,本地策略-安全选项,网络安全:LAN管理器身份验证级别,如何修改成默认的“没有定义”
查看 网络安全:LAN管理器身份验证级别,安全设置已经变为默认“没有定义”。在本地安全策略,本地策略-安全选项,网络安全:LAN管理器身份验证级别,如何修改成默认的“没有定义”
posted @ 2017-09-18 14:46 长戟十三千 阅读(3) | 评论 (0)编辑 收藏
1、配置DNS

 vi  /etc/sysconfig/network-scripts/ifcfg-eth0

              ONBOOT=yes

               MM_CONTROLLED=no
2、/etc/resolv.conf 配置DNS 客户

/etc/resolv.conf 配置DNS 客户
文件/etc/resolv.conf 配置DNS 客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。
下面是一个例子文件: 

nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain

posted @ 2017-09-18 11:56 长戟十三千 阅读(2) | 评论 (0)编辑 收藏

先说坑(解决方案在后面安装步奏中会说)

  • vim版本低 
    明明就差小数点后几位但是就不行,索性就装了vim8.0

  • gcc版本不支持c++11 
    现在发现下一个centos工具包就行了,其中包含最新的gcc

  • vim不支持python 
    在编译vim源代码时加上一些后缀就行了

  • ./install.py时说缺少依赖 
    这个就按照出错提示中要求输的命令输一下就行了


步奏

更新yum

sudo yum upgrade sduo yum update
  • 1
  • 2

下载git

sudo yum install git
  • 1

升级vim以及gcc

升级gcc

sudo yum install centos-release-scl -y sudo yum install devtoolset-3-toolchain -y sudo scl enable devtoolset-3 bash
  • 1
  • 2
  • 3

升级vim

yum install ncurses-devel wget https://github.com/vim/vim/archive/master.zip unzip master.zip cd vim-master cd src/ ./configure --with-features=huge -enable-pythoninterp --enable-python3interp sudo make sudo make install export PATH=/usr/local/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这里列举一些 ./configure 后面的配置选项

  • –with-features=huge:支持最大特性
  • –enable-rubyinterp:打开对ruby编写的插件的支持
  • –enable-pythoninterp:打开对python编写的插件的支持
  • –enable-python3interp:打开对python3编写的插件的支持
  • –enable-luainterp:打开对lua编写的插件的支持
  • –enable-perlinterp:打开对perl编写的插件的支持
  • –enable-multibyte:打开多字节支持,可以在Vim中输入中文
  • –enable-cscope:打开对cscope的支持
  • –with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ 指定python 路径
  • –with-python-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/ 指定python3路径
  • –prefix=/usr/local/vim:指定将要安装到的路径(自行创建)

关于vim的安装路径

默认新的vim是安在/usr/bin/local/中的,但是PATH中会首先找到/usr/bin/中旧的vim,所以不介意的话把旧的vim删了也可以,也可以输入下面的命令来使命令行中的vim指令指向 /usr/local/bin/vim 的程序

alias vim='/usr/local/bin/vim'
  • 1

下载编译ycm

git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe git submodule update --init --recursive
  • 1
  • 2

在 ~/ 下创建文件 .vimrc,输入一下内容

set nocompatible  filetype off  set rtp+=~/.vim/bundle/Vundle.vim  call vundle#begin()  Plugin 'gmarik/Vundle.vim'  call vundle#end()  filetype plugin indent on 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用vim打开,后输入 :PluginInstall 
完成后在 ‘Plugin ‘gmarik/Vundle.vim’的下一行输入 ‘Plugin ‘Valloric/YouCompleteMe’,保持后退出

cd ~/.vim/bundle/YouCompleteMe ./install.py --clang-completer
  • 1
  • 2

安装完成后将.yum_extra_conf.py复制一份到 ~/

cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/
  • 1

之后打开在~/中的文件,进行找到此为止进行添加

...  '-isystem', '/usr/include', '-isystem', '/usr/include/c++/', '-isystem', '/usr/include/i386-linux-gnu/c++'  ... 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

完毕后打开.vimrc进行配置

let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'  "设置全局配置文件的路径 let g:ycm_seed_identifiers_with_syntax=1    " 语法关键字补全 let g:ycm_confirm_extra_conf=0  " 打开vim时不再询问是否加载ycm_extra_conf.py配置 let g:ycm_key_invoke_completion = '<C-a>' " ctrl + a 触发补全 set completeopt=longest,menu    "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

更过个性化配置可以自行百度或google

posted @ 2017-09-13 13:27 长戟十三千 阅读(3) | 评论 (0)编辑 收藏

安装步骤

1. 编译环境准备

准备一下编译环境,防止出现安装错误

 yum groupinstall 'Development Tools'  yum install zlib-devel bzip2-devel openssl-devel ncurese-devel

2. 下载python3.5代码包

这里选择下载最近版本的Python3.5.1 (2016-05)

 wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz

3. 编译

 tar Jxvf Python-3.5.1.tar.xz  cd Python-3.5.1  ./configure --prefix=/usr/local/python3  make && make install

Python3.5.1 安装编译安装时会默认安装 pip 如果出现:
Ignoring ensurepip failure: pip 1.5.6 requires SSL/TLS
未安装编译环境,重新安装该编译环境并重新编译 Python3.5.1
yum install zlib-devel bzip2-devel openssl-devel ncurese-devel

4. 更换系统默认 Python 版本

  1. 备份旧版本 Python
    mv /usr/bin/python /usr/bin/python2.7
  2. 新建指向新版本 Python 以及 pip 的软连接
    ln -s /usr/local/python3/bin/python3.5 /usr/bin/python
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
  3. 检验 Python 及 pip 版本
    python -V
    pip -V

5.更新 yum 相关设置

因 yum 的功能依赖 Python2 更改默认 Python版本后会导致 yum无法正常工作
执行以下命令:
vi /usr/bin/yum
打开文件,修改第一行为:
#!/usr/bin/python2.7

若执行 yum 时出现以下错误:
File "/usr/libexec/urlgrabber-ext-down", line 28
执行以下更改,打开该文件并修改首行为:
#!/usr/bin/python2.7

6. 其他

执行 yum 时,若出现以下 Error:
Error: Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
执行以下安装可解决:
yum install deltarpm

版本共存

如果你希望同时使用多版本 Python ,例如在保持系统原有版本 Python2.x 不变的情况下使用 Python 3.x,可以考虑使用 virtualenv 构建合适版本的虚拟环境:

# python2.7 环境下搭建 python3.x 环境 #安装 pip yum install python-setuptools easy_install pip #安装virtualenv pip install virtualenv  #在当前文件夹下构建虚拟环境 virtualenv -p /usr/local/python3/bin/python3 venv #启动虚拟环境 source venv/bin/activate  #退出虚拟环境 deactivate

virtualenv 详细使用说明,参见 Virtualenv



作者:少年的狐先生
链接:http://www.jianshu.com/p/8bd6e0695d7f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2017-09-12 11:33 长戟十三千 阅读(9) | 评论 (0)编辑 收藏
1、代码规范定义
   proto代码规范
   变量、结构体、函数、命名规范

2、架构文档
   架构拆分
   模块功能拆分
   接口定义及调用规则
   模块解耦设计
   表格、数据库、协议选择

3、架构设计
   出生服务器
   战斗服务器
   其他服务器
   服务器间均衡策略
   服务器集群策略,启动,关闭

4、服务器模块架构设计
   网络模块
   计时器
   逻辑模块
   数据库模块
   模块间通信,线程间RPC
   模块间解耦
   LUA:加载,调用,热更,异常处理
   so调用:加载,调用【上层模块,同级模块】,热更,异常处理
   数据管理模块:加载,删除,更新【客户端,数据库】
   异常处理:逻辑日志,dump, gdb反向调试,堆栈信息日志
   协议模块:protobuf, 多个文件
   表格模块:pb文件及热更新

   
   

posted @ 2017-08-29 18:43 长戟十三千 阅读(4) | 评论 (0)编辑 收藏
1、gdb7 提供了反向调试 (reverse debug)的功能
Reverse-continue ('rc')Continueprogram being debugged but run it in reverse
Reverse-finishExecute backward until just before the selected stack frame is called
Reverse-next ('rn')Step program backward, proceeding through subroutine calls.
Reverse-nexti ('rni')Step backward one instruction, but proceed through called subroutines.
Reverse-step ('rs')Step program backward until it reaches the beginning of a previousline
Reverse-stepiStep backward exactly one instruction
set exec-directionSet direction of execution.
2、第三方的方向调试工具 rr : Record and Replay Framework
https://github.com/mozilla/rr
posted @ 2017-08-29 18:21 长戟十三千 阅读(6) | 评论 (0)编辑 收藏
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
sudo tar -zxvf go1.8.linux-amd64.tar.gz -C /usr/local/
mkdir ~/go
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc

Enjoy it!
posted @ 2017-07-25 15:28 长戟十三千 阅读(4) | 评论 (0)编辑 收藏
1、可重用
一个服务创建后能用于多个应用和业务流程。
2、松耦合
服务请求者到服务提供者的绑定与服务之间应该是松耦合的。因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等。
3、明确定义的接口
服务交互必须是明确定义的。Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者所要求的绑定到服务提供者的细节。WSDL不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由哪种程序设计语言编写的。
4、无状态的服务设计
服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和 数据模型。
5、基于开放标准
当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准.采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。

思考:与ECS的区别,如何实现无状态服务,并将依赖定义为通用接口[单例的system, 用于提供通用服务,减少系统间的依赖调用]。
posted @ 2017-07-18 20:39 长戟十三千 阅读(4) | 评论 (0)编辑 收藏
目的:子类对象构造时,区分类型ID
实现:利用模板制作构造工具。
 1 class BaseSystem : entityx::help::NonCopyable {
 2  public:
 3   typedef size_t Family;
 4   static Family family_counter_;
 5 };
 6 
 7 template <typename Derived>
 8 class System : public BaseSystem {
 9  public:
10   // 这里,取得类型ID
11   static Family family() {
12     static Family family = family_counter_++;
13     return family;
14   }
15 };
16 
posted @ 2017-07-12 21:40 长戟十三千 阅读(2) | 评论 (0)编辑 收藏
    服务器宕机的代价是巨大的,好的书写和架构习惯可以有效减少宕机

   1、不跨作用域使用指针,使用时确保有效。

   2、使用ID作为操作的依据。

   3、函数入口地址处添加DUMP的堆栈纪录宏定义,宕机时可查找出错位置。

   4、区分状态,在相邻关联模块进行统一的互斥操作判定。

   

posted @ 2011-10-10 14:16 长戟十三千 阅读(23) | 评论 (0)编辑 收藏
仅列出标题