将任何程序注册为windows服务
原文: node.js程序注册为windows服务
但不幸的是,这个方法在win7和win10上已经失效了...
新的程序是Installutil.exe和sc.exe
参考msdn上的问答
Installutil的介绍
sc的介绍
原文: node.js程序注册为windows服务
但不幸的是,这个方法在win7和win10上已经失效了...
新的程序是Installutil.exe和sc.exe
参考msdn上的问答
Installutil的介绍
sc的介绍
仿真一般都用Proteus, 原理图到PCB都能搞定;
MCU这么几个系列:
C51, 开发环境Keil for C51. 著名开发公司Atmel, 还有国内的STC.
MSP430, TI公司的, 主流两个, 一个是TI自己的CCS编译环境, 另一个是IAR Embedded Workbench for MSP430
AVR, Atmel的芯片, 自家的编译环境有Atmel Studio/toolchain, v5版本以前叫做AVR studio.
ARM, 一般是Keil For MDK. STM32也是基于ARM的Cortex M3的.
STM8, 一般是IVR for STM8, ST公司自家的STVD也可以
PIC, Microchip公司,用 MPLAB X IDE
如果用Vue属性做v-for的话, 注意它不能检测对象属性的直接增删, 而是要用Vue.set来增删对象属性.
另外, 在v-for场景下, 数组可以很方便的只显示部分或者做过滤/排序等, 对象就不行了. 所以使用v-for尽量将数据类型设计为数组.
vue-router默认是需要将项目放在服务器的根目录下的, 在浏览器里输入域名是这样:
http://mydomain.com/
vue怎么确认去服务器取数据还是在本地取数据呢? 其实借助的是井号"#", 井号在url中指向的是自己, 而不会去服务器取数据. 如下url, 是在根目录下的vue应用中, 也就是在vue-router中被导航.
http://mydomain.com/#/login
而如下url,将会到服务器上去取数据
http://mydomain.com/login
但如果要放置在子目录下呢, vue应用放在productinfo目录中:
http://mydomain.com/productinfo/#/login
需要两步:
1. 需要配置 router的config:
const RouterConfig = {
base: 'productinfo'
};
const router = new VueRouter(RouterConfig);
vue-router一般都是用vue-cli或者webpack, 做多个文件打包的, 也就是运行:
npm run build
可以打包app. 当然, package.json中需要有对应的build配置, 如下:
"scripts": {
"build": "webpack --progress --hide-modules --config webpack.prod.config.js",
},
那么在webpack.prod.config.js中, 也需要配置路径, 否则默认应用的打包文件就会出错.
以前是
output: {
publicPath: '/dist/',
},
现在改为:
output: {
publicPath: '/productinfo/dist/',
},
重新打包npm run build就好了.
附webpack.prod.config.js完整文件:
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const merge = require('webpack-merge');
const webpackBaseConfig = require('./webpack.base.config.js');
const fs = require('fs');
fs.open('./src/config/env.js', 'w', function(err, fd) {
const buf = 'export default "production";';
fs.write(fd, buf, 0, buf.length, 0, function(err, written, buffer) {});
});
module.exports = merge(webpackBaseConfig, {
output: {
publicPath: '/productinfo/dist/',
filename: '[name].[hash].js',
chunkFilename: '[name].[hash].chunk.js'
},
plugins: [
new ExtractTextPlugin({
filename: '[name].[hash].css',
allChunks: true
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendors',
filename: 'vendors.[hash].js'
}),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),
new HtmlWebpackPlugin({
filename: '../index_prod.html',
template: './src/template/index.ejs',
inject: false
})
]
});
超微型接口, 一般是IPX/IPEX/IPAX/AMC/UMCC/MHF/Hirose H.FL... 哦, 真搞不清楚这么个接口居然有如此之多的名字... 这是日本公司Hirose的专利接口, 不过用的实在是太多了...
尺寸上似乎有多种类型. 淘宝常见的似乎是331.5MM的. 阻抗50Ω.传输频率 0~6GHz.
普通结构, 一般是SMA, 是SubMiniature version A的简称, 传输频率 0~18GHz, 阻抗50Ω.直径约6mm.
SMA容易和F头(F connector)混淆. F头阻抗75Ω,直径9.5mm. 典型传输频率0~0.75GHz. 不过到2.2GHz似乎也没有问题.
Q9/BNC接口也常用于接天线.
TNC(Threaded Neill–Concelman)接头, 是BNC接头的螺纹版. 50Ω/0~11GHz. 微波段比BNC表现好. 公口1.5厘米,母口1厘米.
N接头(N Connector), 0~11GHz,有50Ω和75Ω版本. 公口直径有2.03厘米, 母口直径有1.57厘米, 是比较大的接口.
其他:
1. J一般表示公头, K表示母头.
2. SMA和TNC都有RP版. RP是Reverse Polarity的简称,即"反极性".
* 正常版内螺纹端(公头)有针, 外螺纹端(母头)无针.
* RP版的内螺纹端无针, 外螺纹端有针.
pug与stylus虽然看起来写起来都很简洁,然而由于像sublime text这样的编辑器已经对html自动补全支持得很好了, pug和stylus在还没有自动补全的时候, 书写效率未必比原生html和css更快
pug示例:
div.className1.className2(style='font-size:37px') test ok!
stylus示例
.className1
color: green
.className2
background-color: red
1、npm install xxx-loader --save-dev,如:以前叫jade现在叫pug的:
npm install pug-html-loader
2、在webpack.base.config.js中加入配置:
module:{
rules: [{
test: /\.pug/,
loader: ['raw-loader', 'pug-html-loader']
}]
}
3、使用。如在vue的模板中: