分类 未分类 下的文章
vue不能检测对象属性的增删
如果用Vue属性做v-for的话, 注意它不能检测对象属性的直接增删, 而是要用Vue.set来增删对象属性.
另外, 在v-for场景下, 数组可以很方便的只显示部分或者做过滤/排序等, 对象就不行了. 所以使用v-for尽量将数据类型设计为数组.
vue-router放置在子目录下,而不是根目录下的方式
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
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
webpack安装插件Loader的三步
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的模板中:
科技与谎言
科技永远打着造福人类的旗号。
可它却只是为了压榨人类,发展自己。
农业革命,大部分人类丧失了空闲,必须日日面朝黄土背朝天;阶级产生,只有皇帝和祭司无需劳动。
工业革命,人类丧失了土地,必须日日面对机器;农民打砸机器,希望换回曾经的生活。
信息革命,人们连机器也丧失了,产线上只有机器人;人们开始咒骂全球化,想要要回自己的工作。
人工智能革命,人们连决策力也丧失了,不需要做决定,司机失业,更多需要做决定的工作都失业了。人们又将咒骂什么,又将如何生存?
农业大棚种植技术与物联网
似乎高大上的种植都是放在大棚里的。跟大棚相关的技术和产品有这些:
- 水帘,也称为湿帘,装在大棚的一侧,一般为纸质,使用不锈钢做框架包裹,用管道水浸润。另一侧使用风机抽风,可以使大棚通风、降温,控制温度在30度以内,成本据说是空调的1/3
- 卷膜器,有电动有手动。电动版有ac 220v、dc 12v/24v等。分为卷侧面、卷顶面(天窗)。一个大棚至少4个,才能将两个侧面+顶面的两边完全卷起来。
跟灌溉有关的技术有很多,都讲究个节水,并且讲灌溉前,先得说培育技术,最主要的当然是经典的土壤培育,灌溉方式包括:
* 传统漫灌,当然是很耗水的了
* 喷灌,在城市绿化带常见。相对节水。距离也可以有数米远。问题是不适合幼苗期灌溉,水压太大会冲毁幼苗。一般是用PVC水管竖在地里,或者使用地插杆+毛管插在地里使用。
* 滴灌,更加节水的一种方式,也比较适合盆养,将滴箭(就是滴灌,长得像个箭)插入土壤来灌溉,或者使用指定速率的滴头插在PE管上滴水。
* 微喷,更更节水的方式,相对于喷灌喷出的水花,微喷喷出来的其实是雾气,不过距离较近,应该是在一米内。雾化效果好,不伤苗,所以在整个作物发育期都可以使用。
灌溉中的输水,最开始应该先进入过滤系统,滤出泥沙,防止后面堵塞管道
输水用到几种管道,依次是:
* 最前面的是PVC管,属于硬管,作为主管道。
* 接着是PE管,是软管,在田里的灌溉区使用,做为分管道。常见的16/20/25mm的PE管,管壁1mm。PE管可以直接接滴头。
* 毛管,按内径、外径的毫米数分为3/5管,4/7管,8/11管。其中47管比较常用。
灌溉和施肥常常是分不开的,在灌溉的水中将肥料直接加入,可以使施肥更均匀。常见的方式是文丘里施肥。在灌溉主管道中旁路(并联)一个文丘里施肥器,需要施肥的时候关闭正常用水的阀门,水经过文丘里管时,利用水流动的负压吸取肥料到水中。
其他灌溉方式还有水培, 就是放在水里,营养液也在水里,不接触土壤,更加洁净。其他了解还不深。
更现代化的一个灌溉方式:雾培,是将作物根系悬空,将水分和养料直接喷雾到根系上。这种方式据说是最节水的,水分几乎100%吸收,未吸收的水分连同营养液可以回流到池中再次利用。此种方式的好处是:
* 极致节水、降低肥料使用
* 隔离土壤环境,几乎不受到虫害、病菌侵扰。仅存的病虫害还可以通过电功能水的方式物理治疗,不需要化学农药,更加安全
* 土地利用率高,不需要放在土中,可以多层培育,单位土地可以产出更多的作物
我想的这个雾培能不能家庭使用?家里水不会要太多,又不好找土,似乎还挺适合的。而且这个技术非常适合于工厂加工。所谓的现代化大棚,更像一个工厂车间吧。
虫害方面的防治,主要也两种:
* 化学农药,传统的方式。哦,还有转基因。我把转基因放在化学中,因为这只不过是使用生物方式产生化学农药而已。
* 物理方式,除了上面说的电功能水以外,还有其他红外紫外之流。
对了,还有光照,光照不足的情况,是通过补光灯来补充的。
那么物联网传感器在其中的作用,也因种植方式的不同而不同。
对于大棚种植,大棚内的空气温湿度一定是需要控制的。另外二氧化碳浓度也是很重要的影响因素。
对于土壤种植,土壤的湿度信息就需要传递,以便更好地节水。
其他方式的种植还未想到传感器的作用。
开源硬件
除了Arduino以外,还有其他的面向不同规模的开源硬件。
著名的树莓派。
还有1000多的LattePanda,可以运行Linux,有一个4g/64g的存储。
Beaglebone,数百元,骨头板。
Banana PI, 基于安卓的香蕉派板子,数百元。
webduino, 网站:https://webduino.io/tutorials.html
arduino可以商用吗?答案是肯定的。不过arduino开发板体积很大,有没有小一些的?上海的DFRobot公司有一个cheapuino,约20多块价格,体积也很小。
arduino可以自行烧录到avr单片机中去吗?似乎也是肯定的。使用arduino bootloader,可以烧录加载器就行了。
价格对比:
1. Arduino
Arduino UNO正品价格88元,不过网上有很多仿造版,价格在20多。Arduino 最小系统 arduino pro mini,仿版很多,价格在6元左右。
Arduino要实现网络功能,建议还是使用ESP8266的Arduino兼容版会便宜很多,比较出名的项目是nodemcu, 20元左右。还有D1 WiFi UNO,价格也差不多。
不过要实现有线网络功能,似乎只有加一个外接shield W5100,价格约30左右。如果想要集成起来,有一个Arduino YUN的开发板,不过价格太高,要500左右。里面有一个基于Openwrt的系统。这时呢,我觉得还不如用树莓派。
- 树莓派
树莓派基本板在200~300左右,支持有线、无线、蓝牙,4个USB,有HDMI,40个GPIO,有Linux,支持Micro SD(TF),加上64G TF卡和触控屏,也就700元。如果是嵌入式服务器端,用树莓派似乎更划算一些。
3.Beaglebone
知名度不高,价格也更贵,似乎优势是扩展性更强,性能更强,支持PWM和模拟输入。价格300多到600多不等。
- 香蕉派Banana PI
采用的是台湾全志的主芯片,性能上也比树莓派强不少,可以跑安卓系统。不同型号价格从200多到400多不等。配上个小触屏,价格在600多。
在node.js中调用EXCEL VBA,该怎么办?
关键词很多...
- win32ole据说可以:
npm地址
介绍文章using-com-object-in-nodejs
安装
npm install win32ole
这个的用法和后面说的ActiveXObject很像.不过4年前就已不在维护了.
目前这个项目使用新版的node会编译不通过,必须降级到老版才行,看来不太实用了。
2. 还有个edge项目据说可以访问.net
网址
Github 地址
npm 地址
介绍文章 how-to-run-an-excel-vba-from-a-node-js-program
据说可以替代win32ole
using-edge-js-as-a-replacement-for-win32ole
- 另一个用到ActiveXObject
介绍文章 JavaScript to call a VBA routine with parameters
最早看到的是这个,调用方式简单直接, 但据说只能在老IE里面使用ActiveXObject这个对象! 哦, 老IE里面script类型不但可以是JavaScript, 还可以是vbscript呢!
仔细研究,是使用了一个叫HTA的技术, 用mshta.exe运行.HTA全称 是HTML Application, 微软1999年就弄出来了, 基于IE运行, 有更高的权限, 很先进的说! 当年的electron啊!
微软介绍HTA的文章Introduction to HTML Applications (HTAs),
显示不一样好像是同一篇的: Introduction to HTML Applications (HTAs), 更新时间是2011年.
wiki的介绍: HTML_Application
看起来不错,但很可能绑定了IE, 所以就被抛弃了...
从搜索结果收录来看,也远远不及electron
- 微软的office.js
JavaScript API for Office reference
很好很强大,但是,只有office 2013以上的版本才支持。
关于Win7关闭任务栏缩略图的方法
由于通过搜索引擎搜索出来的大部分答案都是修改gpedit.msc或者注册表的方式,而且都要重启生效。。。太山寨了。。。给你们介绍正规的方式:
开始菜单 - 计算机 - 右键 - 属性 - 高级系统设置 - ‘高级’标签卡 - 性能 - 设置 - “启用桌面组合”的勾去掉 - 应用 - 搞定!


Win10快捷键
Win10新增了很多快捷键,这儿的文章有比较详细的描述
截图: win+shift+s
Word的多级列表在哪儿?
我们常常习惯在word右键菜单中找多级列表,因为右键菜单已经有了有序列表(项目符号)和无序列表(编号),为什么没有多级列表?可惜就是没有。
在哪儿呢?以2007为例,在“开始->多级列表”。快捷键 Alt+H -> M。样子像是这样:
参考官方文档:定义新项目符号、 编号和多级列表
查看linux机器是32位还是64位的方法
转载自 http://www.cnblogs.com/JemBai/archive/2012/05/25/2517783.html
查看linux机器是32位还是64位的方法:
file /sbin/init 或者 file /bin/ls
/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
如果显示 64-bit 则为64位;
file /sbin/init
/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
如果显示为32 bit 则为32bit;
uname -a:
uname -a
Linux pmx002..** 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
x86_64表示64位机器
uname -a
Linux pmx0..** 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
i686表示32位机器
i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.
备注:
- i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.
intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D系列
以及centrino P-M,core duo 等.
X86_64 适用于intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempron64/x2, Duron64等采用X86架构的64位cpu.
PPC 适用于Apple Macintosh G3, G4, G5, PowerBook, and other non-Intel models
安装DVD包括的软件要比安装光盘多一些,安装DVD也包括了两种图形界面(KDE和gnome).
4.Jigdo
也可以通过 Jigdo 下载 Fedora 发行版。Jigdo 可以加速下载安装盘的 ISO 镜像。同 BT 下载等待任务完全完成所不同,Jidgo 自动定位最快的镜像服务器(通过 Fedora 镜像管理器),并且从中下载所需要的文件。为了减少所需的网络流量,可以让 Jigdo 扫描现存的 DVD 或 CD 介质。这个功能对于以下用户特别有用。
getconf LONG_BIT
在32位和64位机器上运行如下命令,结果如下:
[b@002 ~]$ getconf LONG_BIT
64
[root@pmx4 /]# getconf LONG_BIT
32
修改ssh登录欢迎界面
修改/etc/banner就行了。