- LVS+Keepalived实现高可用和负载均衡
2401_84412895
程序员lvs负载均衡运维
2、开启网卡子接口配置VIP[root@a~]#cd/etc/sysconfig/network-scripts/[root@anetwork-scripts]#cp-aifcfg-ens32ifcfg-ens32:0[root@anetwork-scripts]#catifcfg-ens32:0BOOTPROTO=staticDEVICE=ens32:0ONBOOT=yesIPADDR=10.1
- window显示驱动开发—支持 Direct3D 版本 10.1
1.Direct3D10.1的版本标识(1)版本号与头文件定义API版本号:D3D10_1_SDK_VERSION(在d3d10_1.h中定义)运行时检测:通过ID3D10Device::CheckFeatureSupport查询D3D10_FEATURE_LEVEL_10_1支持。D3D10_FEATURE_LEVELfeatureLevel=D3D10_FEATURE_LEVEL_10_1;i
- 小白排坑-Centos8无法启动网卡解决方案,网卡未加入托管
吃喝不愁的Live~~
linux基础
只针对部分情况,网卡未加入托管导致虚拟机开启ifconfig没有ens33网卡,无法上网手动启动网卡提示Connection'ens33'isnotavailableondeviceens33becausedeviceisstrictlyunmanaged解决方案临时方案:dhclientens33执行后可以上网,可以远程连接,但是每次开机都无法自动启动,最终找到原因是由于NM托管未开启导致的永久
- 网卡未托管的解决办法
m0_73104820
linux
网卡未托管的解决办法[root@localhost~]#nmclidevicestatus//查看网卡的连接状态DEVICETYPESTATECONNECTIONvirbr0bridge未托管--ens160ethernet未托管--loloopback未托管--virbr0-nictun未托管--[root@localhost~]#nmclidevicesetens160managedyes//
- nmcli 网卡显示未托管
刘先生的猫
网络服务器linux
nmcli网卡显示未托管解决办法:修改/etc/NetworkManager/NetworkManager.conf将文件中的managed=false改为true重启就可以了这样就可以通过nmcli命令来断开/连接网卡nmclidevicedisconnecteth0断开网卡nmclideviceconnecteth0连接网卡nmclicup/downwifi可以连接/断开WiFi的连接nmcl
- Tensorflow-gpu运行时报错Non-OK-status: GpuLaunchKernel
GEM的左耳返
pythontensorflow深度学习python
Tensorflow-gpu运行时报错Non-OK-status:GpuLaunchKernel(FillPhiloxRandomKernelLaunch,num_blocks,block_size,0,d.stream(),gen,data,size,dist)status:Internal:invaliddevicefunctionFatalPythonerror:Aborted说明你安装的C
- 移动端布局
小唱同学
viewport详解viewport:视口,指的是浏览器中放网页内容的区域移动端的viewport不会自动随着设备的变化而变化,被设定为一个固定值980或者1024,为了能够在移动端正常查看pc端页面.做移动端布局时,需要把viewport设置为随着设备的变化而变化参数说明:width:设置视口的宽度device-width设备宽度initial-scale:页面的初始缩放比例1.0原始大小max
- centos 配置docker
一、卸载旧版本(如有)sudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine二、安装依赖包sudoyuminstall-yyum-utilsdevice-mapper-persis
- ODMABNet30CE_X86.dll ODMABDF130CE_X86.dll rnvideopacketizer.dll rndtdriver.dll rndevicefsys.dll
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用MicrosoftVisualStudio编写的,所以这类软件的运行需要依赖微软VisualC++运行库,比如像QQ、迅雷、Adobe软件等等,如果没有安装VC++运行库或者安装的版本不完整,就可能会导致这些软件启动时报错,提示缺少库文件。如果我们遇到关于文件在系统使用过程中提示缺少找不到的情况,如果文件是属于运行库文件的
- 芯片ad71X linux 驱动程序
/*AD714XCapTouchProgrammableControllerdriversupportingAD7142/3/7/8/7ACopyright2009-2011AnalogDevicesInc.LicensedundertheGPL-2orlater.*/#include#include#include#include#include#include#include“ad714x.h
- 精度控看过来!机床用Modbus TCP转DeviceNet后,速度波动压到0.1%以内是种什么体验
在机床行业迈向智能化、自动化的进程中,提升加工精度与效率是核心追求。为达成高精度定位,需让不同设备协同运作,可施耐德PLC采用ModbusTCP协议,伺服驱动器遵循DeviceNet协议,协议差异使设备间通信困难重重,阻碍自动化升级。针对此问题,选用JH-TCP-DVN疆鸿智能ModbusTCP转DeviceNet网关作为连接桥梁。在产品选型上,施耐德PLC凭借强大运算能力与丰富指令集,能稳定执行
- 医疗设备自动化升级:Modbus TCP与DeviceNet的协议协同实践
JIANGHONGZN
DeviceNETModbusTCPmodbus工业通讯协议网关
一、项目背景在我们医疗器械车间,不少关键设备比如输液泵、呼吸机的监测系统一直存在个棘手问题:核心控制用的施耐德PLC走ModbusTCP协议,负责统筹设备运行逻辑;而监测患者静脉压力的压力传感器、输液袋液位的液位传感器,却都采用DeviceNet协议。两种协议就像讲着不同方言,传感器的实时数据传不到PLC,PLC也没法根据数据及时调整设备参数——比如液位低了不能自动提醒,压力异常时响应滞后,不仅增
- SQL34 统计复旦用户8月练题情况
折翼的恶魔
MYSQL数据库
描述题目:现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0.示例:用户信息表user_profileiddevice_idgenderageuniversitygpaactive_days_within_3012138male21北京大学3.4723214male复旦大学4.01536543femal
- React Native启动android报错 Failed to install the app. Command failed with exit code 1: gradlew.b(亲测有效)
安心不心安
ReactNative学习笔记reactnativeandroidreact.js
一、原因react-nativerun-android或npxreact-nativestart命令的默认行为是:编译APK(通过Gradle)。安装APK到设备(通过adbinstall)。启动应用(通过adbshellamstart)。如果模拟器未提前启动:adb可能找不到设备,导致安装步骤失败。错误可能表现为Noconnecteddevices!或INSTALL_FAILED。二、解决方法注
- 用ADB实现自动化抓取移动端数据
小小小小小台
【介绍】ADB全称是AndroidDebugBrige,其作用是可以连接电脑和安卓手机,以及通过命令去控制手机。【ADB工作原理】把Androiddevelopmenttools的路径设置为环境变量后,可以通过linux命令直接和移动设备沟通adbdevices可以查看连接设备查看连接设备其工作原理是在开发机上起一个服务器,并通过tcp协议和安卓设备进行信息交换【程序】程序组成·脚本包含两个模块:
- 反射工具包reflections
反射工具包reflections帮助开发者通过反射扫描指定路径下的类、方法等maven依赖org.reflectionsreflections0.9.11小例子packagecom.lucas.device.rest.api;importjava.lang.reflect.Method;importjava.util.Objects;importjava.util.Set;importorg.re
- 【LINUX】Centos 9使用nmcli更改IP
chuk.
Linuxlinuxcentostcp/ip运维
1.查看连接名称nmcliconnectionshow输出类似:NAMEUUIDTYPEDEVICEWiredconnection1xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxethernetenp1s02.修改IP地址(以静态IP为例)nmcliconnectionmodify"Wiredconnection1"ipv4.addresses192.168.1.100/
- 模型剪枝(分析)
yc_hu
剪枝python机器学习
1.函数入口与设备初始化defget_layer_level_pruning_rate(args):device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")功能:检测可用设备(优先使用GPU),为后续模型加载做准备。2.数据加载与评估函数定义train_loader,val_loader,test_loader,criterio
- centos 使用Docker 快速搭建LNMP环境
Solo_67ed
一、安装Docker更新yum包yum-yupdate卸载旧版本(如果之前安装过的话)yumremovedockerdocker-commondocker-selinuxdocker-engine安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖yuminstall-yyum-utilsdevice-mapper-persis
- MongoHelper工具类库
packagecom.jimi.tracker.mongo;importcom.google.common.collect.Lists;importcom.jimi.tracker.model.DeviceInfo;importcom.khan.utils.JacksonUtils;importlombok.extern.slf4j.Slf4j;importorg.springframework.
- 【udev】关于/dev 设备节点的生成 &udev
CH_Qing
linux前端网络
1.设备节点的生成机制Linux中的设备节点(例如/dev/ttyS0、/dev/sda等)本质上是特殊的文件,它们代表内核中的设备,用户态程序通过这些节点与设备通信。1.1内核初始化:使用devtmpfs创建节点内核加载某个驱动后,调用device_register()等函数注册设备。同时通过devtmpfs文件系统自动创建/dev/下的设备节点。devtmpfs是内核在启动earlystage
- stm32舵机不运作或者舵机执行延迟很高
在正确连接舵机并且在代码正确的情况下,舵机没有任何反应,而在些许时间后舵机突然动了几下而又继续停摆。1.刚开始以为代码有问题,但代码编译成功了,于是重新单独写了一份舵机驱动代码Servo.c#include"stm32f10x.h"//Deviceheader#include"PWM.h"voidServo_Init(void){PWM_Init();}voidServo_SetAngle(flo
- 新能源电池厂自动化应用:Modbus TCP转DeviceNet实践
JIANGHONGZN
工业通讯协议网关ModbusTCPDeviceNETmodbus
一、项目背景在新能源电池厂的生产过程中,提升自动化水平对提高生产效率和产品质量至关重要。我们的生产线上,施耐德PLC负责整体的生产流程控制,采用ModbusTCP协议进行数据传输,它基于以太网,传输速度快、稳定性高,适合长距离和大数据量的通信,常用于监控与数据采集。而机械手臂作为关键的生产执行设备,使用DeviceNet协议,该协议基于CAN总线技术,具有出色的实时性和抗干扰能力,能满足机械手臂对
- lspci/setpci用法小结
Lllongroad
网络服务器linuxPCIe
目录1.lspci用法小结2.lspci-t3.setpci用法小结1.lspci用法小结参考博客:【PCIe】lspci用法小结-知乎lspci是一个用来显示系统中所有PCI总线设备或者连接到该总线上所有设备的工具manlspcilspci(8)ThePCIUtilitieslspci(8)NAMElspci-listallPCIdevicesSYNOPSISlspci[options]DESC
- 水泥厂码垛环节的协议转换实践:从Modbus TCP到DeviceNet
在水泥生产的最后环节,袋装水泥的码垛效率直接影响整体产能。我们厂原来的码垛区采用人工辅助机械臂作业,施耐德PLC负责协调生产线节奏,而码垛机器人自带的控制系统却只支持DeviceNet协议,两者无法直接通信,导致机器人经常出现动作滞后或节拍错乱,每天至少要停线调整3-4次,严重时还会出现水泥袋堆叠歪斜的情况。为解决这个问题,我们对比了三种方案:给机器人加装ModbusTCP模块成本太高,更换兼容协
- 水电站自动化升级:Modbus TCP与DeviceNet的跨协议协同应用
水电站的自动化系统就像一个精密的“神经中枢”,既要应对水流变化带来的动态负载,又得保证闸门启闭、水轮机调节等关键动作的精准性。我们去年参与的某水电站改造项目里,就遇到了一个典型问题:中控室的施耐德PLC采用ModbusTCP协议进行数据传输,而负责执行闸门开度调节、水轮机导叶控制的伺服驱动器却只支持DeviceNet协议。这种“语言不通”导致设备联动迟滞,有时甚至出现调节误差超标的情况,直接影响发
- DeviceNet主站转Modbus-TCP总线协议转换网关详细解读建议收藏
JIANGHONGZN
DEVICENET工业自动化ModbusTCP工业控制协议网关
怎样把DeviceNet主站转Modbus-TCP连接起来?最近很多读者后台咨询这个问题,小编在这统一为大家详细解读下,有一个设备可以轻松解决这个问题,名为JH-DVN-TCP,下面是详细信息一,设备主要功能JH-DVN-TCP疆鸿智能型网关实现ModbusTCP网络与DeviceNet网络之间的数据通讯,可连接DeviceNet网络到ModbusTCP网络。即将DeviceNet设备连接到Mod
- 一、新建FreeRTOS工程----软件仿真
灬若宸
FreeRTOSstm32单片机嵌入式硬件系统架构
目录1、新建本地工程文件夹2、使用Keil新建工程3、SelectDeviceForTarget4、ManageRun-TimeEnvironment5、Keil中新建文件夹及添加文件6、编写main函数7、调试配置8、增加头文件1、新建本地工程文件夹在创建工程前需要在本地电脑上新建一个文件夹,用于存放工程。文件名称:FreeRTOS。然后在该文件夹下新建各种文件夹和文件。2、使用Keil新建工程
- 获取android设备模拟器名称
adbdevices(base)PSE:\Androidstudioproject\tvandphone>adb-semulator-5554shellgetpropro.product.modelsdk_gphone64_x86_64(base)PSE:\Androidstudioproject\tvandphone>adb-semulator-5556shellgetpropro.produc
- krpano 渲染全景视频
是菜菜的小前端啊
前端
使用krpano渲染全景视频,可渲染不同分辨率的视频。使用的krpano版本为1.19index.htmlERROR:Javascriptnotactivatedembedpano({xml:"video.xml",target:"pano",passQueryParameters:"startscene,startlookat"});video.xmlif(device.panovideosup
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">