轩辕十四

探索科技与创新的个人博客

如果你发现连不上你的 VPS了,那么有一种可能就是端口被封,我们需要改一下 VPS 端口了。

登陆服务器

如何登陆 VPS 可以参考这篇文章: SSH 免密登陆 VPS

修改 VPS 的 SSH 端口

VPS 的端口配置在文件 sshd_config 中,我们直接用如下的命令打开文件:

1
vi /etc/ssh/sshd_config

在文章的末尾你能看到 Port 字段,一般默认是 22,随意修改一个数字,建议 1000 以下。然后保存退出。重启 VPS 即可。

登陆电信光猫

打开浏览器,输入 http://192.168.1.1 ,进入光猫管理页面,用 useradmin 账户登陆。将地址栏中的连接 http://192.168.1.1/cgi-bin/content.asp 改为 http://192.168.1.1/cgi-bin/telnet.asp 。出来如下的界面:

启用 Telnet ,点击确定。

终端获取超级密码

打开 Mac 终端,输入命令

1
2
3
4
5
6
telnet 192.168.1.1

# 用户名 admin
# 密码 1234

cat /tmp/ctromfile.cfg

按住 control + s 键,保存终端内容到文件。

文件中搜索 telecomadmin ,就能看到超级密码了。

file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:

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
34
35
36
37
38
39

file.close()
# 关闭文件。关闭后文件不能再进行读写操作。

file.flush()
# 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

file.fileno()
# 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。

file.isatty()
# 如果文件连接到一个终端设备返回 True,否则返回 False。

file.next()
# 返回文件下一行。

file.read([size])
# 从文件读取指定的字节数,如果未给定或为负则读取所有。

file.readline([size])
# 读取整行,包括 "\n" 字符。

file.readlines([sizehint])
# 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。

file.seek(offset[, whence])
# 设置文件当前位置

file.tell()
# 返回文件当前位置。

file.truncate([size])
# 截取文件,截取的字节通过size指定,默认为当前文件位置。

file.write(str)
# 将字符串写入文件,没有返回值。

file.writelines(sequence)
# 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py 用于标识当前文件夹是一个包。
考虑一个在 package_runoob 目录下的 runoob1.pyrunoob2.py__init__.py 文件,test.py 为测试调用包的代码,目录结构如下:

1
2
3
4
5
test.py
package_runoob
|-- __init__.py
|-- runoob1.py
|-- runoob2.py

package_runoob/runoob1.py

1
2
3
4
5
#!/usr/bin/python
# -*- coding: UTF-8 -*-

def runoob1():
print "I'm in runoob1"
阅读全文 »

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块让你能够有逻辑地组织你的 Python 代码段。
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
模块能定义函数,类和变量,模块里也能包含可执行的代码。

import 语句

模块的引入

模块定义好后,我们可以使用 import 语句来引入模块,语法如下:

1
import module1[, module2[,... moduleN]

比如要引用模块 math,就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时,必须这样引用:

1
模块名.函数名
阅读全文 »

我们在进行 SSH 登陆的时候,每次都需要输入密码,就感到十分的不方便,这里可以利用 SSH Key(ssh公钥) 来验证登录,从而实现免密登陆。

通过命令生成 SSH Key

生成 SSH Key 我们需要 ssh-keygen 命令

1
2
3
4
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看生成的 SSH Key

1
2
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
阅读全文 »

现在苹果iOS系统已经原生支持了二维码扫描的功能,使用原生来扫描需要导入 AVFoundation

扫描准备


一、获取摄像设备:

1
device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo)

二、创建输入流

1
2
3
4
5
do {
try input = AVCaptureDeviceInput(device: device)
} catch let e as NSError {
print(e.localizedDescription)
}
阅读全文 »

由于项目原来的设计,导致在OS X 10.10之后的系统上会出现一些奇怪的Bug,调用- addSubview:positioned:relativeTo:方法却并没有实现将视图放在最上层。经过不断的查找,才知道,子视图的父视图并没有被显示出来,导致了- addSubview:positioned:relativeTo:方法不起作用。那么如果将父视图显示出来的话,window button(关闭按钮,最小化按钮,全屏按钮,最大化窗口按钮)又会被遮盖掉,无奈,需要自定义window button。

在自定义之前一定要将系统自动创建的按钮关闭

1
2
3
4
[[self.window standardWindowButton:NSWindowCloseButton] setEnabled:NO];
[[self.window standardWindowButton:NSWindowMiniaturizeButton] setEnabled:NO];
[[self.window standardWindowButton:NSWindowFullScreenButton] setEnabled:NO];
[[self.window standardWindowButton:NSWindowZoomButton] setEnabled:NO];
阅读全文 »

当我们再做开发,从github上面下载库的时候,总是很慢。pod setup 那是更加的慢。这里我们配置一下代理,速度立马就上去了。

Git 目前支持的三种协议 git://ssh://http:// ,其代理配置各不相同: core.gitproxy 用于 git:// 协议, http.proxy 用于 http:// 协议, ssh:// 协议的代理需要配置 sshProxyCommand 参数。

阅读全文 »
0%