- Node-js和echarts
冲锋敢死曾小贤
在命令行输入npm-v出现了node版本号即安装成功新建一个package文件npminit输入对应的内容全部采取默认方式命令npminit-y安装依赖npminstalljquery默认放在生产环境下的生产环境是软件上线的时候需要用到的依赖包npmibootstrap--savenpmibootstrap-S开发环境是软件开发的时候需要用到的依赖包npmibootstrap--save-devn
- node-js中mysql连接数据库
webstertang
使用npm中的mysql模块连接数据库一、安装npminstallmysql二、引入模块,并连接mysqlvarmysql=require("mysql");module.exports=function(database){returnmysql.createConnection({host:"127.0.0.1",user:"root",password:"root",database:dat
- yarn 安装vuex vue-router 报错error Received malformed response from registry for “vuex“
刘栀子
yarn
报错信息直接执行该方法解决1.步骤一yarnconfigsetregistryhttps://registry.npm.taobao.org2.步骤二yarninstall--no-bin-links参考文件路径https://www.html.cn/qa/node-js/14966.html
- PyQt完整入门教程
要努力的嬉哈风范
python教程
1、GUI开发框架简介19年来,一直在做AndroidROM相关测试,也有了一定的积累;20年,计划把之前完整的测试方案、脚本、工具进行整合复用。第一期计划是开发一个GUI的测试工具,近期也进行了相关调研。1.1通用开发框架electorn:基于node-js,跨平台,开发成本低,运行效率低qt:基于C++,跨平台,效率高,开发成本高javafx:基于java,主要用于跨平台桌面程序开发flutt
- skywalking
yang_zzu
java开发skywalking调用链监控
目录分布式链路追踪Skywalking的特点整体架构安装node-js安装es-head安装esskywalking部署应用服务配置警告信息过滤路径启动的服务源码地址APM(ApplicationPerformanceManagement)即应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用进行监测、优化,提高企业应
- Node-js
FØund404
javascript前端开发语言
title:Node.jsdate:2022-06-3021:26:11tags:Node.jscategories:Node.js什么是Node.jsNode.js是一个基于ChromeV8引擎的JavaScript运行环境Node.js中的JavaScript运行环境注意:浏览器是JavaScript的前端运行环境Node.js是JavaScript的后端运行环境Node.js中无法调用DOM
- 【Nodejs】Node-js笔记
Ein hübscher Kerl.
#JavaScript学习笔记大前端学习javascriptwebpack前端node.jsnpm
Node.js文章目录Node.js一、Node.js概述1.1、介绍1.2、官网1.3、Node.js应用场景1.4、安装Node.js1.5、npm包管理器1.5.1、介绍1.5.2、切换npm源1.5.3、生成JSON配置文件1.5.4、查看当前安装的树形模块1.5.5、安装模块1.5.6、自定义脚本命令1.5.7、自动重启应用1.6、模块化二、Node_js常用内置模块2.1、OS模块2.
- debian安装node-js环境
牧民
推荐第二种安装方式,第一张安装方式会报很多的环境变量出现问题安装各种g++c++编译环境等方式1:1、下载nodejs安装包wgethttps://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz2、解压tarzxvfnode-v8.9.4.tar.gz3.编译源码进入node-v8.9.4文件夹目录./configure配置安装路径,默认安装路径maketest
- node-js获取本机ip
Wxh16144
使用node.js获取本地IPv4地址项目需求在公司开发项目过程中,使用Vue项目配置本地host的时候;每个人从SVN仓库pull下来的代码,安装依赖后,无法正常运行,需要修改ip为自己本地IP?(不知何用意);索性每次都要改,每个开发者都麻烦,所以自己写了一个方法来获取IP地址;解决方法constos=require('os');constgetLocalIP=()=>{//所有的网卡cons
- Ubuntu 20.04 快速搭建Vue开发环境
EdmundShelby
Vue/UniApp总结vue.jsubuntunpm
node-js官网下载压缩包,解压到/usr/local目录下修改环境变量还需要重启,所以设置软连接更快sudoln-s/usr/local/language/node-js/bin/node/usr/local/binsudoln-s/usr/local/language/node-js/bin/npm/usr/local/bin然后就可以检查版本,如果之前的/usr/local/bin有重名文
- PyQt开发入门教程
there2belief
Pythonpython开发语言
来源:PyQt完整入门教程-lovesoo-博客园(cnblogs.com)1、GUI开发框架简介1.1通用开发框架electorn:基于node-js,跨平台,开发成本低,运行效率低qt:基于C++,跨平台,效率高,开发成本高javafx:基于java,主要用于跨平台桌面程序开发flutter:基于dart语言,谷歌开源移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面1.
- 【译】Node.js是什么?JavaScript运行时说明
ayufish
原文链接:https://www.infoworld.com/article/3210589/node-js/what-is-nodejs-javascript-runtime-explained.htmlNode.js是一个精简、快速、跨平台的JavaScript运行时环境,被用在服务器端和桌面应用。infoworld伸缩性、延迟、吞吐量是web服务器的几个核心性能指标。当访问量增大时依旧能保持
- [译] NodeJS 错误处理最佳实践
宫若石
NodeJS的错误处理让人痛苦,在很长的一段时间里,大量的错误被放任不管。但是要想建立一个健壮的Node.js程序就必须正确的处理这些错误,而且这并不难学。如果你实在没有耐心,那就直接绕过长篇大论跳到“总结”部分吧。英文原文:https://www.joyent.com/node-js/production/design/errors这篇文章会回答NodeJS初学者的若干问题:我写的函数里什么时候
- dvaJs + react 快速构建项目
梦回唐朝编程
dvareactdvayarn前端
dvaJs+react快速构建react项目构建之前需要先安装好node-js(默认自带npm包管理器)或者安装yarn。如果使用国内网络可能会造成下载速度慢可以先设置淘宝镜像(设置方法请参考:http://blog.csdn.net/quuqu/article/details/64121812):安装npminstalldvanpminstalldva-cli-g(-g代表全局安装)创建项目mk
- 分享6个可用于检查Node-js中漏洞的工具-诺禾
yyone123
js
所有产品中都可能存在漏洞。软件做得越大,潜在的漏洞就越大。如果存在漏洞,漏洞将为某些不怀好意的开发者创造机会,这可能会破坏产品以及产品的用户体验。此外,在当今快节奏的世界中,随着公司要求快速开发(或更新)流程,漏洞的数量会增加。这就是为什么尽早检查应用程序中的漏洞很重要。这可以帮助你确保发布的最终产品是安全的,从长远来看可以节省大量时间。在本文中,介绍六个工具,这些工具可以帮助你检查Node.js
- NodeJs 写服务器案例 搭建服务器 创建服务器
创新境界
node-js创建服务器node-jsnodejsnodejs
其实用node-js写一个服务端程序没多大的难度,nodejs把很多方法都封装,其次nodejs是异步通信架构轻松实现高并发如果要用多核处理包含库cluster下面的代码仅仅是一个3分钟写出来的登录案例访问链接:http://127.0.0.1:8080/select?type1=login&username=csdn&password=123456我下面的代码没有做很多判断比如sql匹配防sql
- web3的shh使用
逸飞777
以太坊
web3-shh包用来使用whisper协议进行广播发送。我在node-js开发中想调用ssh生成一对公钥和私钥,但是报了以下错误:web3.js:Error:Themethodshh_newSymKeydoesnotexist/isnotavailableonWeb3.js不管怎么调,方法总是调用不了,百度以后发现没有解答,然后果断Google,终于找到答案,在这里总结。1.升级web3版本,我
- node.js vs. Spring
LarryHai6
IT-应用框架-Spring
http://vschart.com/compare/node-js/vs/spring-frameworknode.jsSpring+Addcolumnnode.jsSpringFrameworkCategoryFrameworkWebapplicationframeworkWebapplicationframeworkFrameworkPreference48%votes52%votesWeb
- Appium Python环境配置
nullpointsun
1.下载各种必需环境软件JavaSDK,官网AndroidSDK,官网Appium,官网node-js,官网python,官网(以上都是无脑安装,无脑装就行了)装好nodejs之后,应该可以运行npm命令,用这个命令我们装一个appium-doctor来测试一下我们的环境是否OKnpminstall-gappium-doctor装好以后运行一下appium-doctorinfoAppiumDoct
- node-js由浅入深教程
qq_39985511
node
Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(2001年推出的古老的IE6到今天仍然有人在使用!)没有竞争就没有发展。微软认为IE6浏览器已经非常完善,几乎没有可改进之处,然后解
- 利用Node-js搭建前端自动化平台
Max_Law
Node.js
我们在前面《Node.js的本质》一文中初步了解Node.js后,发现它功能很多呀,这么牛逼的东西赶紧学习。然而我一直翻看网上各种的教程,文档,都是什么学习node内核呀,API呀,node项目呀,看得头晕眼花,这个学习曲线这么陡,简直打击热情嘛,经过我一番纠结,终于确定了学习的路线,Node.js我为其总结三大块功能:利用Node.js搭建后台;利用Node.js编写脚本;利用Node.js实现
- 如何在Node.js中打印堆栈跟踪?
p15097962069
本文翻译自:HowtoprintastacktraceinNode.js?有谁知道如何在Node.js中打印堆栈跟踪?#1楼参考:https://stackoom.com/question/CGd0/如何在Node-js中打印堆栈跟踪#2楼通过一个随时可用的Node模块,可以从Node获得全长堆栈跟踪(尽管性能损失很小):http://www.mattinsler.com/post/2639630
- 《javascript机器人》学习笔记
jser_dimple
今天看了一本书,名字是Javascript机器人,里面讲述的就是使用node-js进行控制硬件里面有一些代码在github开源https://github.com/rwaldron/javascript-robotics主要是要安装Johnny-Five包,然后使用的电路板为Arduino。Arduino是一款便捷灵活、方便上手的开源电子原型平台。1.下载并安装ArduinoIDE2.可通过USB
- 【NodeJS】基础知识
y4ngyy
nodejs基础nodejs允许自己封装模块,使得编写程序可以模块化,便于维护整理。在一个js文件中写完封装的函数或对象后,可以使用exports或module.exports来将模块中的函数暴露给程序,使得整个程序可以使用,如:functionHelloWorld(){return'Hello,node-js!';}module.exports.HelloWorld=HelloWorld;要使用
- js操作数据库实现注册和登陆的简单实例
自从node-js出现之后,不只是java,php等后端语言可以操作数据库,进行内容的增删改查,javascript简本语言同样具备了该项技能,而且在node下,js具备了很强的操作性和代码的阅读性,让晦涩难懂的代码变得更加的清晰了,下面我简单介绍javascript如何操作数据库进行登录注册功能的实现。首先,页面部分就直接省略了,我们默认已经安装数据库了,开始从注登录说起。exports.log
- nodeJs 安装及使用
凤凰小哥哥
开发工具相关
下载地址:https://download.csdn.net/download/qq_35781178/11223059点击:node-v6.9.2-x64.msi查看是否安装成功,dos命令:node-vnpm-v然后配置全局变量,首先在安装目录配置两个文件夹:dos输入命令:npmconfigsetprefix"C:\tools\node-js\node_global"npmconfigset
- Web全栈开发基础(小白入门版本)
弈心逐梦
后端Web全栈开发学习笔记
近几个月认真写了写Web全栈代码,有点小收获这里分享一下。我还做了个PPT,资源路径欢迎拍砖指点!Web全栈开发是一个听起来很虎的名词。本文从技术层面解释全栈开发,能帮助没有全栈概念,或者说对相关技术比如Django、Node-js等没有什么认识的读者搞明白这些名词之间有什么关系。技术栈Web全栈,是将前端技术、后端技术、前后端交互技术、数据处理及系统部署等技能都能用起来的开发方式。既能写界面,又
- TypeScript
漂泊雪狼
https://github.com/Microsoft/TypeScripthttp://www.typescriptlang.org/https://docs.mongodb.com/ecosystem/drivers/node-js/http://www.hacksparrow.com/mongoskin-tutorial-with-examples.htmlhttp://mongoosej
- 用libevent 写高性能的服务器
创新境界
前面写过用Node-Js写的高并发服务器,因为Node-Js基于异步非阻塞的机制,优点是容易实现高并发缺点是由于是谷歌V8的引擎JS不适合做太大规模的计算操作。所以如果服务器涉及到大规模的计算操作并且想快速开发的话,基于HTTP/TCPIP协议的话推荐用libevent库最直观的理解是基于异步非阻塞的机制就是都使用了回调函数下面的代码是我从之前做过的工程里找了一段单独复制出来无法直接运行我再从网上
- 用libevent 写高性能的服务器
Innovation_Miracle
并发服务器libevent高性能CC++服务器
前面写过用Node-Js写的高并发服务器,因为Node-Js基于异步非阻塞的机制 ,优点是容易实现高并发 缺点是由于是谷歌V8的引擎JS不适合做太大规模的计算操作。所以如果服务器涉及到大规模的计算操作并且想快速开发的话,基于HTTP/TCPIP协议的话推荐用libevent库 最直观的理解是 基于异步非阻塞的机制就是 都使用了回调函数 下面的代码是我从之前做过的工程里找了一段单独复制出来无法直接运
- scala的option和some
矮蛋蛋
编程scala
原文地址:
http://blog.sina.com.cn/s/blog_68af3f090100qkt8.html
对于学习 Scala 的 Java™ 开发人员来说,对象是一个比较自然、简单的入口点。在 本系列 前几期文章中,我介绍了 Scala 中一些面向对象的编程方法,这些方法实际上与 Java 编程的区别不是很大。我还向您展示了 Scala 如何重新应用传统的面向对象概念,找到其缺点
- NullPointerException
Cb123456
androidBaseAdapter
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference
出现以上异常.然后就在baidu上
- PHP使用文件和目录
天子之骄
php文件和目录读取和写入php验证文件php锁定文件
PHP使用文件和目录
1.使用include()包含文件
(1):使用include()从一个被包含文档返回一个值
(2):在控制结构中使用include()
include_once()函数需要一个包含文件的路径,此外,第一次调用它的情况和include()一样,如果在脚本执行中再次对同一个文件调用,那么这个文件不会再次包含。
在php.ini文件中设置
- SQL SELECT DISTINCT 语句
何必如此
sql
SELECT DISTINCT 语句用于返回唯一不同的值。
SQL SELECT DISTINCT 语句
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
SQL SELECT DISTINCT 语法
SELECT DISTINCT column_name,column_name
F
- java冒泡排序
3213213333332132
java冒泡排序
package com.algorithm;
/**
* @Description 冒泡
* @author FuJianyong
* 2015-1-22上午09:58:39
*/
public class MaoPao {
public static void main(String[] args) {
int[] mao = {17,50,26,18,9,10
- struts2.18 +json,struts2-json-plugin-2.1.8.1.jar配置及问题!
7454103
DAOspringAjaxjsonqq
struts2.18 出来有段时间了! (貌似是 稳定版)
闲时研究下下! 貌似 sruts2 搭配 json 做 ajax 很吃香!
实践了下下! 不当之处请绕过! 呵呵
网上一大堆 struts2+json 不过大多的json 插件 都是 jsonplugin.34.jar
strut
- struts2 数据标签说明
darkranger
jspbeanstrutsservletScheme
数据标签主要用于提供各种数据访问相关的功能,包括显示一个Action里的属性,以及生成国际化输出等功能
数据标签主要包括:
action :该标签用于在JSP页面中直接调用一个Action,通过指定executeResult参数,还可将该Action的处理结果包含到本页面来。
bean :该标签用于创建一个javabean实例。如果指定了id属性,则可以将创建的javabean实例放入Sta
- 链表.简单的链表节点构建
aijuans
编程技巧
/*编程环境WIN-TC*/ #include "stdio.h" #include "conio.h"
#define NODE(name, key_word, help) \ Node name[1]={{NULL, NULL, NULL, key_word, help}}
typedef struct node { &nbs
- tomcat下jndi的三种配置方式
avords
tomcat
jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称
访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
tomcat配置
- 关于敏捷的一些想法
houxinyou
敏捷
从网上看到这样一句话:“敏捷开发的最重要目标就是:满足用户多变的需求,说白了就是最大程度的让客户满意。”
感觉表达的不太清楚。
感觉容易被人误解的地方主要在“用户多变的需求”上。
第一种多变,实际上就是没有从根本上了解了用户的需求。用户的需求实际是稳定的,只是比较多,也比较混乱,用户一般只能了解自己的那一小部分,所以没有用户能清楚的表达出整体需求。而由于各种条件的,用户表达自己那一部分时也有
- 富养还是穷养,决定孩子的一生
bijian1013
教育人生
是什么决定孩子未来物质能否丰盛?为什么说寒门很难出贵子,三代才能出贵族?真的是父母必须有钱,才能大概率保证孩子未来富有吗?-----作者:@李雪爱与自由
事实并非由物质决定,而是由心灵决定。一朋友富有而且修养气质很好,兄弟姐妹也都如此。她的童年时代,物质上大家都很贫乏,但妈妈总是保持生活中的美感,时不时给孩子们带回一些美好小玩意,从来不对孩子传递生活艰辛、金钱来之不易、要懂得珍惜
- oracle 日期时间格式转化
征客丶
oracle
oracle 系统时间有 SYSDATE 与 SYSTIMESTAMP;
SYSDATE:不支持毫秒,取的是系统时间;
SYSTIMESTAMP:支持毫秒,日期,时间是给时区转换的,秒和毫秒是取的系统的。
日期转字符窜:
一、不取毫秒:
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
简要说明,
YYYY 年
MM 月
- 【Scala六】分析Spark源代码总结的Scala语法四
bit1129
scala
1. apply语法
FileShuffleBlockManager中定义的类ShuffleFileGroup,定义:
private class ShuffleFileGroup(val shuffleId: Int, val fileId: Int, val files: Array[File]) {
...
def apply(bucketId
- Erlang中有意思的bug
bookjovi
erlang
代码中常有一些很搞笑的bug,如下面的一行代码被调用两次(Erlang beam)
commit f667e4a47b07b07ed035073b94d699ff5fe0ba9b
Author: Jovi Zhang <
[email protected]>
Date: Fri Dec 2 16:19:22 2011 +0100
erts:
- 移位打印10进制数转16进制-2008-08-18
ljy325
java基础
/**
* Description 移位打印10进制的16进制形式
* Creation Date 15-08-2008 9:00
* @author 卢俊宇
* @version 1.0
*
*/
public class PrintHex {
// 备选字符
static final char di
- 读《研磨设计模式》-代码笔记-组合模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
abstract class Component {
public abstract void printStruct(Str
- 利用cmd命令将.class文件打包成jar
chenyu19891124
cmdjar
cmd命令打jar是如下实现:
在运行里输入cmd,利用cmd命令进入到本地的工作盘符。(如我的是D盘下的文件有此路径 D:\workspace\prpall\WEB-INF\classes)
现在是想把D:\workspace\prpall\WEB-INF\classes路径下所有的文件打包成prpall.jar。然后继续如下操作:
cd D: 回车
cd workspace/prpal
- [原创]JWFD v0.96 工作流系统二次开发包 for Eclipse 简要说明
comsci
eclipse设计模式算法工作swing
JWFD v0.96 工作流系统二次开发包 for Eclipse 简要说明
&nb
- SecureCRT右键粘贴的设置
daizj
secureCRT右键粘贴
一般都习惯鼠标右键自动粘贴的功能,对于SecureCRT6.7.5 ,这个功能也已经是默认配置了。
老版本的SecureCRT其实也有这个功能,只是不是默认设置,很多人不知道罢了。
菜单:
Options->Global Options ...->Terminal
右边有个Mouse的选项块。
Copy on Select
Paste on Right/Middle
- Linux 软链接和硬链接
dongwei_6688
linux
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连
- DIV底部自适应
dcj3sjt126com
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
- Centos6.5使用yum安装mysql——快速上手必备
dcj3sjt126com
mysql
第1步、yum安装mysql
[root@stonex ~]# yum -y install mysql-server
安装结果:
Installed:
mysql-server.x86_64 0:5.1.73-3.el6_5 &nb
- 如何调试JDK源码
frank1234
jdk
相信各位小伙伴们跟我一样,想通过JDK源码来学习Java,比如collections包,java.util.concurrent包。
可惜的是sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt.jar。
下面是编译jdk的具体步骤:
1.把C:\java\jdk1.6.0_26\sr
- Maximal Rectangle
hcx2013
max
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and return its area.
public class Solution {
public int maximalRectangle(char[][] matrix)
- Spring MVC测试框架详解——服务端测试
jinnianshilongnian
spring mvc test
随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的。从Spring 3.2开始Spring了Spring Web测试框架,如果版本低于3.2,请使用spring-test-mvc项目(合并到spring3.2中了)。
Spring MVC测试框架提供了对服务器端和客户端(基于RestTemplate的客户端)提供了支持。
&nbs
- Linux64位操作系统(CentOS6.6)上如何编译hadoop2.4.0
liyong0802
hadoop
一、准备编译软件
1.在官网下载jdk1.7、maven3.2.1、ant1.9.4,解压设置好环境变量就可以用。
环境变量设置如下:
(1)执行vim /etc/profile
(2)在文件尾部加入:
export JAVA_HOME=/home/spark/jdk1.7
export MAVEN_HOME=/ho
- StatusBar 字体白色
pangyulei
status
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
/*you'll also need to set UIViewControllerBasedStatusBarAppearance to NO in the plist file if you use this method
- 如何分析Java虚拟机死锁
sesame
javathreadoracle虚拟机jdbc
英文资料:
Thread Dump and Concurrency Locks
Thread dumps are very useful for diagnosing synchronization related problems such as deadlocks on object monitors. Ctrl-\ on Solaris/Linux or Ctrl-B
- 位运算简介及实用技巧(一):基础篇
tw_wangzhengquan
位运算
http://www.matrix67.com/blog/archives/263
去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个r
- jsearch的索引文件结构
yangshangchuan
搜索引擎jsearch全文检索信息检索word分词
jsearch是一个高性能的全文检索工具包,基于倒排索引,基于java8,类似于lucene,但更轻量级。
jsearch的索引文件结构定义如下:
1、一个词的索引由=分割的三部分组成: 第一部分是词 第二部分是这个词在多少