Flask get start.

很高兴加入书山府,迎来了新的挑战。Flask Python3 单元测试….

Python3 升级

公司的业务需要从PHP业务升级到Python3 Flask.早点接触实际项目对于学习新生事物是直接的,在这里我不打算把所有Python3与Python2的
语法区别全部列出来,采取大方向学习主要的知识点,小地方多接触不同点,在这里记录下来,作为每天学习的心得。

1
2
from flask import render_template
# render_template 渲染模板

Read More

leetcode猛撸

为了应对不同笔试中的语言问题,现采取C/C++/Python/Java来掌握不同笔试题的知识点。

1.两数之和 Python

1.给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:

1
2
3
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
list_len = len(nums)
for i in range(0, list_len):
for j in range(i + 1, list_len):
if (nums[i] + nums[j] == target):
# print [i, j]
return [i, j]

# nums = [3, 2, 4]
# target = 6
# obj = Solution()
# obj.twoSum(nums, target)

Read More

201805面试总结

收到新华三公司的电话面试邀请

网络操作系统软件开发工程师

所属部门:H3C-Comware开发部
工作地点:杭州
面试地点:杭州
岗位职责:负责网络操作系统架构及协议设计与开发工作
任职要求:
1) 计算机、通信或相关专业本科及以上学历,具备较强的英文阅读能力。
2) 精通C/C++编程语言,熟悉linux/Unix系统,具有多线程开发经验。
3) 熟悉TCP/IP网络协议,具有交换机、路由器开发经验者优先。
4) 对虚拟化技术有研究者优先。
5) 具备良好的沟通协调能力和团队合作精神,较强的工作责任,能够在一定的压力下独立解决问题

Read More

JavaScript浅拷贝和深拷贝递归

浅拷贝的结果是两个引用指向同一个对象,即同一片内存区域。

浅拷贝

1
2
3
4
5
6
7
var Ethan = {name: 'xia.weihua', height: '177cm', girlfriend: {name: 'leftHand'}};  // Just a joke, never mind.
var Jack = Ethan;

Jack.height = '165cm';

console.log(Ethan);
console.log(Jack);
1
2
3
4
5
6
{ name: 'xia.weihua',
height: '165cm', // I'm not
girlfriend: { name: 'leftHand' } }
{ name: 'xia.weihua',
height: '165cm',
girlfriend: { name: 'leftHand' } }

Read More

使用ubuntu,kafka,zookeeper搭建集群服务器

本文将粗略描述一台电脑或者多台电脑搭建集群服务器。以此提供分布式发布订阅消息系统,大数据hadoop,简单的机器学习等多种服务需要的运行环境。
环境与工具:Windows 10、vmware 14 Pro、ubuntu 16LTS、kafka_2.11-0.11.0.0、zookeeper-3.4.5、xshell5
配置:8G内存、256G固态、 1T机械、 GTX 850、Intel i5-CPU
kafka:一种高吞吐量的分布式发布订阅消息系统
zookeeper:分布式应用程序协调服务,是Hadoop和Hbase的重要组件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

安装ubuntu16,JDK,kafka,zookeeper并配置vmware 14 pro

在虚拟机中安装ubuntu16. 下载ubuntu
安装完毕后,进入登录界面,此时登录的是安装时注册的用户。
接着创建root用户,再登入root

1
2
3
4
5
wh136@ubuntu:~$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
wh136@ubuntu:~$ su
root@ubuntu:/#

Read More

套接字socket在Python中的用法测试

本部分介绍 socket — Low-level networking interface 偏底层的接口
区别于 socketserver — A framework for network 框架

从计算机网络开始

OSI七层协议:物理层,数据链路层,网络层,运输层,会话层,表示层,应用层
TCP/IP的体系结构:网络接口层,网际层IP,运输层(TCP或UDP),应用层(TELNET,FTP,SMTP)
五层协议体系结构:物理层,数据链路层,网络层,运输层,应用层
套接字=IP地址 + 端口 + TCP协议或UDP协议 进程与进程之间的网络通信方式或者本机不同进程通过文件系统之间的通信方式

套接字家族选择(socket family)
基于文件的套接字:单机套接字,使用文件系统作基础,AF_UNIX或者AF_LOCAL
基于网路的套接字:不同主机进程之间通信的套接字,AF_INET和AP_INET6 (AF_INET是用于IPV4,而AF_INET6是用于IPV6)
套接字传输数据类型选择(type)
TCP协议:通信前需要建立连接,连接是可靠的。使用的套接字类型是SOCK_STREAM
UDP协议:无需连接就能通信,速度快,可靠性不高。传输用户数据报格式UDP的数据。使用的套接字类型是SOCK_DGRAM

由于套接字创建以后归属与一个进程。因此,在操作系统课本中有进程的状态与转换(王道计算机操作系统第28页)
一个服务端进程的状态如下:创建—>就绪—>运行—>阻塞(一直while循环等待客户端)—>运行(收到请求链接并响应 三次握手)->终止(关闭服务停止运行)

Read More

简单对象访问协议Simple Object Access Protocol(SOAP)

预备知识

Simple Object Access Protocol是应用程序交换消息数据的一种协议,使用在web服务(Web Service),SOAP是其简写,
由于非常容易与Service-oriented architecture(SOA)产生歧义,在2003年SOAP这种缩写被废止了。

一个简单对象访问协议(Simple Object Access Protocol)的消息是一个普通的XML文档,并包含以下元素。
1.一个信封元素Envelope element用于定义一个XML文档为简单对象访问协议(Simple Object Access Protocol)的消息。
2.一个头元素header element包含头信息
3.一个体元素body element包含呼叫和应答信息
4.一个过错元素fault element包含问题和状态信息

Read More

多进程扫描服务器

在电信十所服务器机房里管理众多的服务器,由于个别服务器(华为服务器)纽扣电池有问题,开机启动不正常,
于是写出以下Python程序用于扫描服务器是否正常开机。

预备知识

需要扫描多个服务器的IP地址。并且只能使用Windows自带Ping.exe程序。
于是用到以下Python模块:multiprocessing、subprocess、re
这三个模块分别是多进程模块,子进程模块,正则表达式模块

Read More