- [Unity]在场景中随机生成不同位置且不重叠的物体
Bartender_Jill
Graphics图形学笔记unity游戏引擎动画
1.前言最近任务需要用到Unity在场景中随机生成物体,且这些物体不能重叠,简单记录一下。参考资料:Howtoensurethatspawnedtargetsdonotoverlap?2.结果与代码结果如下所示:代码如下所示:usingSystem.Collections.Generic;usingUnityEngine;namespaceAssets.Scripts{publicclassNew
- 【三】分布式训练---单机多卡与多机多卡组网(飞桨paddle2.0+)更加推荐spawn方式!
汀、人工智能
#飞桨AIstudio教学使用深度学习神经网络机器学习分布式计算分布式训练
1.单机多卡启动并行训练飞桨2.0增加paddle.distributed.spawn函数来启动单机多卡训练,同时原有的paddle.distributed.launch的方式依然保留。paddle.distributed.launch通过指定启动的程序文件,以文件为单位启动多进程来实现多卡同步训练。以前在aistudio脚本任务说明里,就是推荐这种方法启动多卡任务。launch这种方式对进程管理
- 实习的一点回顾Gradle
BigOrangeSama
javajava
1项目目录下执行./gradlewbuild,用.gradlew自动构建首先有一个gradlew(linux)或者gradlew.bat(win)是用来检查java配置,环境配置之类的东西然后去启动gradle/wrapper/gradle-wrapper.jar去检测本地gradle版本是否和配置文件gradle/wrapper/gradle-wrapper.properties中的一样,不一样
- Git Clone
yuxuehandong
git
CreateProcessWfailederror:193ssh_askpass:posix_spawnp:UnknownerrorHostkeyverificationfailed.使用gitclone从自己在腾讯云建立的git服务器下载报错,使用的命令gitclone用户名@域名:/home/用户名/respository/testproject说来也奇怪使用gitbash一直卡死,什么反应都
- npm ERR! Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘ npm ERR! [Error: EA
SailingCoder
问题处理npm前端node.js
npmERR!codeEACCESnpmERR!syscallaccessnpmERR!path/usr/local/lib/node_modulesnpmERR!errno-13npmERR!Error:EACCES:permissiondenied,access'/usr/local/lib/node_modules'npmERR![Error:EACCES:permissiondenied,
- UE5学习笔记16-游戏模式中的一些事件,如何改变网格体和摄像头的碰撞
快下雨了L
UE5ue5学习笔记
一、OnPostLogIn:此事件在玩家成功登录游戏后被调用二、HandleStartingNuwplayer:在OnPostLogIn事件后被调用,可以用来定义新进入的玩家会发生什么三、SpawnDefaultPawnAtTransform:这个事件触发游戏中实际的Pawn生成四、OnLogout:当玩家离开游戏或被销毁时调用此事件五、OnRestartplayer:调用该事件来让玩家重生六、改
- mac OS系统:操作vue文件需要权限
阿莹yes
前端vue.js
出现需要权限的提示原因是因为Mac本身的保护机制,需要取得管理员权限。提示无法写入文件"/Users/****/Desktop/blog-xjy/docs/.vuepress/config.js"(NoPermissions(FileSystemError):Error:EACCES:permissiondenied,open'/Users/****/Desktop/blog-xjy/docs/.
- 如何解决 npm install 中常见的报错问题
一个代码猎人
Vuenpm前端node.js
引言:在前端开发中,npm(NodePackageManager)是最常用的包管理工具。通过npminstall命令,开发者可以轻松地安装项目所需的依赖包。然而,在实际使用过程中,npminstall可能会因为各种原因而报错,给开发者带来困扰。这篇文章将详细介绍一些常见的npminstall错误类型、发生原因及其对应的解决方案,帮助你更好地应对这些问题。错误类型1:EACCES:permissio
- npm install 报错解决记录
不知名靓仔
npm
引言在使用Node.js和npm(NodePackageManager)进行项目开发的过程中,经常会遇到npminstall命令执行失败的情况。本文将总结一些常见的错误类型及其解决方案,帮助你在遇到这些问题时能够快速定位并解决问题。1.错误类型及解决方案1.1EACCES错误错误示例:1npmERR!path/usr/local/lib/node_modules/npm2npmERR!codeEA
- Linux shell脚本切换为root用户执行命令
红色石榴
linux
首先安装expect。sudoaptinstallexpect创建shell脚本文件,示例内容如下:#!/usr/bin/expectspawnsurootexpect{"密码:"{send"00000\r"}"Password:"{send"000000\r"}}send"./user_app\r"expecteofexit其中,"000000\r"是root用户密码。send语句用于向终端传递
- 解决 npm install 报错的问题
信息安全兴趣爱好者
npm前端node.js
在使用npm安装依赖包时,有时候会遇到各种报错问题,以下是一些常见的报错及解决方法:1.ENOENT:nosuchfileordirectory如果出现类似ENOENT:nosuchfileordirectory的报错,可能是因为某些文件或目录缺失或路径错误。解决方法是检查路径是否正确,确保文件或目录存在。2.EACCES:permissiondenied出现EACCES:permissionde
- 关于Vue中npm install出现报错及解决方法
猿小白klp
vue3vue.jsnpm前端后端学习
在Vue项目开发过程中,我们经常会使用npm工具来安装项目所需的依赖包。然而,有时候在执行npminstall命令时会遇到各种报错,这可能会影响项目的正常开发和运行。本教程将介绍一些常见的npminstall报错及其解决方法,帮助开发者更好地应对这些问题。1.报错:EACCES:permissiondenied这个报错通常是由于权限不足导致无法安装依赖包。解决方法有两种:方法一:使用sudo命令s
- UE5 动态加载资源和类
曼巴UE5
ue5c++学习笔记
//CalledwhenthegamestartsorwhenspawnedvoidAMyActor::BeginPlay(){Super::BeginPlay();if(MyActor){UE_LOG(LogTemp,Warning,TEXT("MyActoris%s"),*MyActor->GetName());}//动态加载资源UStaticMesh*MyTmpStaticMesh=Load
- OpenSSH Username for ‘https://github‘报错弹窗与hexo d部署博客到github时报错:Error: Spawn failed解决办法
dzq198
githubHexo部署博客OpenSSH
一、问题描述1.基于Hexo+Github搭建个人博客,当到了最后关键时刻用hexod部署博客到github的仓库时反复弹出对话框OpenSSHUsernamefor'https://github'Passwordfor'https://你的github邮箱@github.com'二、排查步骤1.在自己建立的博客目录内按住键盘Shift键,点击鼠标右键打开GitBashHere,输入ssh-Tgi
- UE中使用Niagara粒子构建空间网格类特效
电子云与长程纠缠
UE5ue5材质学习
空间网格是一种比较常见的效果,基于这个基础表现可以在此之上做许多扩展。最终呈现如下:1.初始配置首先通过网格发射器构建网格阵列,以Fountain自带发射器为模板,删除一些节点:随后将发射器更改为Grid阵列发射器,将SpawnRate发射率设置为0,效果表现如下:现在还不是统一时间销毁,修改参数InitializeParticle,重置粒子信息。修改网格间距。接下来开始进一步的配置。2.进一步配
- Android APK编译流程
yanlong107
apk是AndroidPackage的简写,在平时的开发过程中,通过点击Runapp按钮或者在命令行中输入./gradlew***(taskName)这样AndroidStudio就会启动构建流程,最终输出一个我们想要的APK。构建流程直达官网介绍image.png如上图所示,典型Android应用模块的构建流程通常按照以下步骤执行:1.编译器将您的源代码转换成DEX文件(Dalvik可执行文件,
- UE4和C++ 开发-编程基础记录(UE4+代码基础知识)
苍狼王UE4学院
UE4和C++C++ue4ue4c++开发语言游戏引擎算法
1、UE4基础元素①Actor我们又见面了Actor,Actor是在一个关卡中持续存在的,通常他包含几个Actor组件。支持网络复制和多人游戏。Actor不包含位置,方向。这些东西在RootComponent中存储。对于UE3中的Pawn也由PlayerCharacter继承了,因为他有MovementComponent包含跳跃,速度等属性由SpawnActor()生成必须由Destroy来销毁在
- 1-解决vscode无法修改wsl项目文件权限问题
Im静湖
vscodevscodeide编辑器
1.问题描述:Failedtosave‘CMakeLists.txt’:Unabletowritefile'vscode-remote://wsl+ubuntu-18.04/home/xxx.h(NoPermissions(FileSystemError):Error:EACCES:permissiondenied,open‘/home/xxx.h’)2.解决方法FromChatgpt
- ./gradlew build:Could not find tools.jar. 解决方法
a_simple_coder
在AndroidStudio中执行./gradlewbuild命令时报以下错误:*Whatwentwrong:Executionfailedfortask':ble_printer:compileDebugJavaWithJavac'.>Couldnotfindtools.jar.Pleasecheckthat/Library/InternetPlug-Ins/JavaAppletPlugin.p
- 互斥器
简书网abc
1,多个线程使用互斥器Arcusestd::sync::{Mutex,Arc};usestd::thread;fnmain(){letcounter=Arc::new(Mutex::new(0));letmuthandles=vec![];for_in0..10{letnew_counter=Arc::clone(&counter);lethandle=thread::spawn(move||{l
- Rust的多线程编程:创建与管理线程及同步机制解析
归云十九少
Rustrust
一、创建线程的方法在Rust中,使用std::thread模块来创建和管理线程。创建新线程的基本方法是调用thread::spawn函数,该函数接受一个闭包作为参数,并在新的线程中执行这个闭包。为了确保线程安全,如果闭包需要访问主线程的数据,则必须通过move语义转移数据的所有权。以下是一个简单的示例:usestd::thread;fnmain(){letv=vec![1,2,3];//创建新线程
- 如何在node.js上调试“错误:生成ENOENT”?
w36680130
node.jsdebuggingerror-handlingchild-processspawn
本文翻译自:HowdoIdebug“Error:spawnENOENT”onnode.js?WhenIgetthefollowingerror:当我得到以下错误:events.js:72thrower;//Unhandled'error'event^Error:spawnENOENTaterrnoException(child_process.js:1000:11)atProcess.ChildP
- THM学习笔记——枚举
jiangyu0_0
学习笔记网络安全安全
复制以下内容时注意中英文符号区别在枚举之前我们要将shell升级为完全交互式的tty。这涉及以下几条命令python-c'importpty;pty.spawn("/bin/bash")'sttyraw-echoexportTERM=xtermrlwrapnc-lvnp443从以上选一条即可手动枚举以下命令只需了解即可,需要的时候自行搜索即可,但还是建议每一行记住一个用户whoamiididroo
- 解决:Manifest merger failed with multiple errors, see logs
Gao秋
Release打包时出现Manifestmergerfailedwithmultipleerrors,seelogs。debug可以安装;gradlew命令运行,gradlewprocessDebugManifest--stacktrace。也没有问题;没有任何提示。解决:命令Terminal命令输入gradlewassembleRelease,最后有报错信息出来84F1A4F8-EBAE-415
- UE中对象创建方法示例和类的理解
ttod_qzstudio
UnrealUC++UE5C++
对象创建方法示例集创建Actor示例//创建一个护甲道具AProp*armor=GetWorld()->SpawnActor(pos,rotator);创建Component示例UCapsuleComponent*CapsuleComponent=CreateDefaultSubobject(TEXT("CapsuleComponent"));创建加载资源对象示例UStaticMesh*chair
- Electron系列之,启动后台服务
梅子酱~
electron前端node.js
通过cmd命令行启动后台服务在electron窗体启动时调取后台服务exe文件文章目录通过cmd命令行启动后台服务一、将服务端文件打包进安装包1、package.json文件配置二、通过start命令启动服务端exe文件1.代码2.服务端文件3.效果二、直接使用exe文件名启动服务1.使用exec命令启动后台服务2.使用spawn命令启动后台服务3.通过命令行关闭后台服务一、将服务端文件打包进安装
- gradlew与jdk版本不匹配,可以通过配置指定jdk 版本
一叶飘舟
java开发语言
在执行gradlew命令的时候报错,日志如下:*Whatwentwrong:Anexceptionoccurredapplyingpluginrequest[id:'com.android.application']>Failedtoapplyplugin'com.android.internal.application'.>AndroidGradlepluginrequiresJava17tor
- Android11 open failed: EACCES (Permission denied)的解决方法
HO灵
androidkotlin开发语言
以下均用kotlin编写,没用过的请酌情参考,方法类似1、首先Manifest中添加权限这是Manifest文件的开头这两句必须加,但是上面那句会提示这样不能在谷歌商店上架,我自己编软件自己用所以不担心,如果真要商用,建议还是老老实实存私有空间,Android11开始应用好像不能在公共空间操作了,需要用户手动设置。2、动态获取权限在主Activity的class里定义privatevalreadR
- 【UE Niagara】环绕在人物周围的闪电效果
Zhichao_97
#虚幻粒子特效ue5Niagara
效果步骤1.首先下载一个螺旋形状的静态网格体并导入UE(地址:https://pan.baidu.com/s/1l9Bn5lQd7tDBu3CMs4c2aA?pwd=7myr)2.创建一个Niagara系统使用Empty模板这里命名为“NS_LightingAround”打开“NS_LightingAround”,添加一个“SpawnRate”模块,SpawnRate设置为100删除“Sprite
- java.io.FileNotFoundException: /storage/emulated/0/xxx.mp3: open failed: EACCES (Permission denied)
lzl2040
安卓我的笔记androidjava
今天在做音乐播放器时,在手机上进行了调试,读写权限也给了,但还是出现了以下错误。java.io.FileNotFoundException:/storage/emulated/0/Music/等什么君-冬眠(原唱司南).mp3:openfailed:EACCES(Permissiondenied)解决方法如下:在AndroidMainfest.xml加入如上代码即可。具体原因可以看这篇博客。深入分
- 继之前的线程循环加到窗口中运行
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">