连接aws ec2提示Operation timed out的解决办法

ssh连接aws ec2时提示:
ssh: connect to host amazonaws.com port 22: Operation timed out

官方给出的解决办法在这里:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout

我的原因是因为安全组设置不正确。用的这个解决方案里的第一条解决办法。
1、打开管理控制台 https://console.aws.amazon.com/ec2/.
2、在左侧选择实例,然后选中右侧有问题的实例。
3、下面会出现几个TAB,选描述,在这个描述里的右侧偏上的地方,有一个“安全组:default. 查看规则”,点击default
4、在出现的页面里,选中一个安全组,查看下面TAB中的入站规则,我的这里没有22端口,所以连接不上。点击“编辑”,弹出窗口中选“添加规则”
5、类型选”ssh”,协议TCP,端口22,来源选任何位置,当然如果自己有固定IP,可以选择“我的IP”
6、提交
7、在SSH重新连接试试看好没。

c++ 堆栈及创建对象

栈(stack),先进后出,位于一级缓存中,操作系统自动分配释放 ,存放函数的参数值,局部变量的值等,被调用时处于存储空间中,调用完毕立即释放。
堆(heap),堆包含一个链表来维护已用和空闲的不连续的内存块,存放在二级缓存中,一般由程序员分配释放。

快速记忆方式:
一级缓存比二级缓存快,栈是一个先进后出列表,存取非常快,所以栈是在一级缓存中。
栈中不能随机取数据,只能取最上面的一个,存放的内容必然要有严格的存取顺序,所以适合函数调用时的形参、局部变量。
栈空间有限,一般PC一级缓存就几M,所以其中的数据也是快速使用,快速删除。像形参、局部变量,在函数调用结束系统就会把数据主动销毁了。
堆空间大,由程序员维护,系统不会主动销毁。

示例代码(参考自:http://blog.csdn.net/cscmaker/article/details/7019977):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>

using namespace std;

class TestNew
{
private:
    int ID;
public:
    TestNew(int ID);
    ~TestNew();
};

TestNew::TestNew(int ID)
{
    this->ID = ID;
}

TestNew::~TestNew()
{
    std::cout<<"对象 "<<this->ID<<" 执行析构函数"<<std::endl;
}
void Test()
{
    TestNew test(1);//创建对象1,不使用new,存储在栈中
    TestNew *pTest = new TestNew(2);//创建对象2,使用new,存储在堆中
    //delete pTest;
}

int main()
{
    Test();//这个地方有点问题,pTest没有进行处理,会导致内存泄露,实际应用中要注意呀
}

输出结果:
对象 1 执行析构函数

说明函数调用结束,对象1被系统主动销毁了。
如果把Test()方法中,delete前的注释去掉。输出:
对象 2 执行析构函数
对象 1 执行析构函数

mac下升级python2到python3

背景知识:
1、mac下会有两个python目录:
/System/Library/Frameworks/Python.framework/
/Library/Frameworks/Python.framework/
第一个是系统默认安装的python目录
第二个是我们自己安装的python所在的目录
2、Python.framework/Versions目录下面保存了所有已安装的python版本
3、Python.framework/Versions/Current是一个软链接,可以用ls -l命令查看。链接到Versions下的某一个版本,表示当前系统在使用的python版本。

综上所述,升级的思路就是:
1、下载并安装新版本的python
2、修改/Library/Frameworks/Python.framework/Versions/Current的链接到新安装的版本,比如,我新安装了3.5版本,要使用3.5版本:
ln -s ./3.5 Current
3、修改相关环境变量,比如~/.bash_profile文件

PATH=”/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}”
export PATH

4、修改python可执行文件的软链接,使用which python目录,查看使用的python bin文件的目录(我的系统里,/usr/bin和/usr/local/bin下都有python的bin文件)。
$ which python
/usr/local/bin/python
$ cd /usr/local/bin/

#列出所有的python相关可执行文件,把下面的输出结果,复制一份保存出来。
$ ls -l python*

#删除旧链接
rm python
rm python-32
rm python-config

创建新链接,这里可以使用前面提到的Current链接,不要直接写死版本号,这样的话,以后再升级python,只改一下Current的软链接就可以了。不过我下面的命令里有写死python3.5,比如升级到3.6的话,Current不用改,但是python3.5要改成python3.6,所以使用Current的意义也不大了。不过每个版本内部还有一个类型 python3 -> python3.5这样的软链接,要使用python3就可以了。我没有使用这个,是觉得一层层的链接搞的层级太深。
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5 python
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5-32 python-32
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5m-config python-config

这样就升级完成了,命令行输入python看到输出版本号就没问题了。
$ python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.

映美 312K打印国税发票时的设置

1、将打印机的挡板位置放到15mm处。
2、在 税控发票开票软件(税控盘版) 软件的发票管理-打印格式设计-发票打印格式设计里,找到增普票,选中,点查看,在新页面里,点设置,将左边距调成-167,上边距设置成-48,打印机选成312K这个打印机。
3、找一张A4纸,裁成和发票一样大小,在打印格式设计里将这个测试的发票打印在这个裁好的纸上。
4、用这个纸和真实发票叠起来,迎着灯光,对一下,看位置合适不。
5、如果合适,就可以用来打真实发票了。

注意:
1、上面第2步设置的时候,一定要选对打印机,没选对打印机,设置了页面边距,出来效果也可能不对。
2、不要用真的发票纸打测试页,也不要把真实的发票数据打到A4纸上。
3、打印机要退纸,先点一下右边的脱机按钮,再点一下进/退纸按钮,纸就出来了。
4、打印机上纸的时候,一或两张纸就够了,不要一次上一沓。纸上多了,打出来全是模糊的一行黑条。