java爬虫破解滑块验证码_计算缺口滑块图和完整滑块图者差距
2401_86372526
java爬虫javascript
#slider{position:relative;background-color:#e8e8e8;width:300px;height:34px;line-height:34px;text-align:center;}#slider.handler{position:absolute;top:0px;left:0px;width:40px;height:32px;border:1pxsolid
MySQL 高级(进阶) SQL 语句
yyytucj
数据库
MySQL是一种功能强大的关系型数据库管理系统。为了有效地利用其高级功能,需要掌握一些进阶的SQL语句和技巧。本文将介绍几种常用的高级SQL语句,包括窗口函数、子查询、联合查询、复杂的连接操作以及事务处理等。1.窗口函数窗口函数是一种高级的SQL功能,用于在查询结果集中计算某些聚合值,同时保留详细数据行。常用的窗口函数包括ROW_NUMBER(),RANK(),DENSE_RANK(),SUM()
Anasys Workbanch第一阶段笔记(12)静力学分析基本参数
垂杨有暮鸦⊙_⊙
有限元分析学习笔记有限元分析
目录0序言1重力的添加2静力学分析的材料参数3材料参数对计算结果的影响4实验结果与仿真结果对比分析0序言本章续前一章笔记(11)(求梁中点挠度问题),补充静力学分析基本参数、重力对计算结果的影响、实验与仿真结果对比时重力的添加情况。1重力的添加在实际的工程应用问题中,经常会考虑要不要添加重力载荷的问题。在之前装配体问题中,在不能确定可不可以简化问题的时候,选择不简化装配体。因为在工程问题中,在没有
python | cudf,一个超实用的 Python 库!
双木的木
python拓展学习python库python开发语言人工智能深度学习算法database数据分析
本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。原文链接:cudf,一个超实用的Python库!大家好,今天为大家分享一个超实用的Python库-cudf。Github地址:https://github.com/rapidsai/cudf在数据分析和科学计算领域,Pandas是最常用的Python工具之一,然而随着数据规模的增长,其单线程CPU的处理性能往往成为瓶颈。cuDF是N
【算法思考】Radial basis function interpolation (RBF)插值法
Kross Sun
算法人工智能
目录什么是插值什么是Radialbasisfunction如何基于Radialbasisfunction中建立插值计算插值的权重基于插值权重求解新采样点函数值代码实现参考文献什么是插值假设我们有n个采样点,这些采样点的维度都是k维的,记做X={x1,x2,⋯xn}\bold{X}=\{\bold{x_1,x_2,\cdotsx_n}\}X={x1,x2,⋯xn},对于每个xi\bold{x_i}x
CTF-RE 从0到N: 基本按位运算逻辑
A5rZ
算法ctfctf-RE
利用移位快速乘除2^n左移运算(>)等效于将数除以2的某个幂次(舍弃小数部分)。示例:计算8*4和32/4:intx=8;intresult1=x>2;//32/2^2=8printf("%d\n",result2);//输出:8intpower_of_2=1>=1;}printf("Numberof1s:%d\n",count);//输出:4作用:位计数在位图、数据压缩和错误检测中非常常见。2.
桌面在计算机哪个文件夹,windows的桌面文件夹是哪个?
高杉峻
桌面在计算机哪个文件夹
该楼层疑似违规已被系统折叠隐藏此楼查看此楼Windows7的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中储存着所有的用户生成文件,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\YourUserName\Desktop目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:\Users\joe\Documents目录之中)。你想把用户
等保测评过程中通常会遇到哪些常见问题
黑龙江亿林等级保护测评
安全网络web安全django大数据算法数据结构
常见问题1.信息泄露风险信息系统存储、传输和处理的敏感信息可能被非法获取,导致个人隐私泄露或商业秘密泄露。解决方法:加强数据加密措施,确保数据传输和存储的安全性,定期进行安全培训,提高员工的安全意识和应对能力。2.拒绝服务(DoS)攻击风险针对系统资源的攻击可能导致系统或服务暂时或永久不可用。解决方法:增强系统的抗DoS攻击能力,部署有效的流量监控和清洗设备。3.恶意软件风险包括计算机病毒、木马、
利用 PyTorch 动态计算图和自动求导机制实现自适应神经网络
drebander
AI编程pytorch神经网络人工智能
在深度学习任务中,不同任务的复杂度千差万别。为了解决复杂任务对模型容量的需求,同时避免简单任务因过度拟合导致的性能下降,我们可以构建一个能够根据任务自动调整网络结构的神经网络。在PyTorch中,动态计算图和自动求导机制为实现这一目标提供了强大的工具。动态网络结构设计PyTorch的动态计算图允许我们根据运行时的输入数据或任务复杂度,动态创建和修改网络结构。动态添加/移除层:可以在训练过程中根据需
二叉树深度的介绍
go5463158465
python算法算法开发语言python
二叉树深度的定义:二叉树的深度(高度)是指从根节点到最远叶子节点的最长路径上的节点数。例如,一个只有根节点的二叉树,其深度为1;如果根节点有两个子节点,且每个子节点又分别有两个子节点,那么这个二叉树的深度为3。计算二叉树深度的方法:递归方法:递归是解决二叉树问题的常用方法。对于二叉树深度的计算,其递归的思想是:二叉树的深度等于其左子树和右子树深度的最大值加1。以下是使用Python实现的代码:cl
通义千问 Qwen2-VL-2B:技术架构、核心原理、微调操作与场景应用详解
zhangjiaofa
大模型通义千问大模型多模态模型微调
通义千问Qwen2-VL-2B:技术架构、核心原理、微调操作与场景应用详解引言近年来,多模态大模型在人工智能领域取得了显著进展,尤其是在视觉语言理解(Vision-LanguageUnderstanding,VL)方面。阿里云通义千问团队推出的Qwen2-VL-2B模型,作为Qwen2-VL系列中的轻量级版本,凭借其高效的计算性能和强大的多模态处理能力,成为开源社区和工业界关注的焦点。本文将深入解
回溯注意点:回溯时间复杂度的计算与剪枝操作
大磕学家ZYX
算法模板与专题整理剪枝算法c++leetcode
文章目录回溯的时间复杂度计算示例1:77.组合示例2:216.组合总和Ⅲ示例3:17.电话号码字母组合关于剪枝对时间复杂度的影响总结回溯的剪枝操作必要性及适用场景示例1:组合剪枝剪枝优化点:示例2:组合剪枝剪枝优化点:示例3:不能剪枝的情况回溯的时间复杂度计算计算回溯时间复杂度,我们可以使用如下公式:答案个数(叶子节点个数)×路径长度(搜索深度)示例1:77.组合voidbacktracking(
单目测距(yolo-目标检测+标定+深度学习目标检测_测距)
计算机C9硕士_算法工程师
YOLO目标检测深度学习
YOLOv5模型介绍YOLOv5是目前最先进的目标检测算法之一,在多个数据集上取得了优秀的表现。相较于YOLOv4,YOLOv5采用了更深的Backbone网络和更高的分辨率输入图像,以提高检测精度和速度。单目测距实现方法在目标检测的基础上,我们可以通过计算物体在图像中的像素大小来估计其距离。具体方法是,首先确定某个物体的实际尺寸,然后根据该物体在图像中的像素大小计算其距离。这个方法可以应用于各种
Go语言从入门到精通:一站式学习指南
写代码写到不能自控
golang开发语言后端
Go语言(也称Golang)自2009年由Google推出以来,凭借其简单、并发支持、以及高效的性能,迅速成为开发者的宠儿。它被广泛应用于Web开发、微服务架构、云计算等领域,并且得到了大量开发者的追捧。如果你是Go语言的初学者,或者已经有一定编程经验的开发者,那么这篇博客将帮助你从Go语言的入门知识学起,逐步深入,最终达到精通的水平。一、Go语言概述1.1什么是Go语言?Go语言是由Google
基于Blackwell架构的GPU,用七十二个GPU拼接成性能强大的计算集群,其性能比上一代提升三倍,GPU已成为AI时代的基础设施,可实现各种大模型的训练
百态老人
架构人工智能
英伟达在2024年3月发布了基于Blackwell架构的GPU,这一新一代GPU在性能上相比上一代Hopper架构有显著提升。具体来说,Blackwell架构的GPU拥有2080亿个晶体管,采用台积电4纳米工艺制造,其AI性能达到了20petaflops,是前代H100GPU的五倍。Blackwell架构通过多芯片封装技术(MCM),将两个GPU集成在一起,从而解决了内存局部性和缓存问题,提高了计
tensorflow1.x 基础案例3
慢慢学习python
tensorflow框架学习tensorflow学习python
.为什么还有很多人都选择使用TensorFlow1.x兼容性问题:TensorFlow1.x在一些旧项目中已经得到了广泛应用,这些项目可能依赖于1.x版本的特定API或行为。升级到2.x可能需要大量的代码修改和测试工作,对于一些已经稳定运行的项目,维护者可能不愿意承担这种风险。性能要求:在某些情况下,TensorFlow1.x可能提供了更适合特定任务的性能优化。例如,对于需要极致计算性能的应用,1
Depth Anything V2:单目深度估计的更强基线
武朵欢Nerissa
DepthAnythingV2:单目深度估计的更强基线项目地址:https://gitcode.com/gh_mirrors/de/Depth-Anything-V2项目介绍DepthAnythingV2是由HKU与TikTok团队合作开发的单目深度估计算法的升级版本。这个框架显著提升了细节处理能力和鲁棒性,相比于基于深度学习的方法,它提供了更快的推理速度、更少的参数量以及更高的深度预测精度。本项
深度图转点云——从图像到三维场景
MrybHtml
点云
在计算机视觉领域中,深度图转点云是一项重要的任务,它能够将二维深度图像转换为三维点云表示。点云是一种由点构成的数据结构,可以直观地表示三维场景中的物体形状和空间布局。本文将介绍一种常见的方法,并提供相应的源代码,以实现深度图转点云。深度图是一种灰度图像,其中每个像素值代表了该点距离相机的距离。深度图通常使用激光雷达或者结构光等传感器捕捉得到。而点云则是由一系列的三维点组成,每个点都有其在空间中的坐
Go语言学习 day20
qq_50996930
Go语言基础golang学习算法
golang遍历map是有序还是无序,为什么?无序,因为go的map基于哈希表,可以实现快速插入和查找,不保证顺序。会根据key的哈希值来决定存放kv对的哈希桶的索引,对key的哈希值的计算没有固定顺序。定义一个局部变量,默认是分配到堆上还是栈上,什么情况是堆上?默认在栈上。分配到堆上的话,靠go的逃逸分析机制,编译器用逃逸分析,如果一个变量生存周期大于函数作用域,就是堆上,或者被外部引用(局部变
python3+TensorFlow 2.x(四)反向传播
刀客123
python学习tensorflow人工智能python
目录反向传播算法反向传播算法基本步骤:反向中的参数变化总结反向传播算法反向传播算法(Backpropagation)是训练人工神经网络时使用的一个重要算法,它是通过计算梯度并优化神经网络的权重来最小化误差。反向传播算法的核心是基于链式法则的梯度下降优化方法,通过计算误差对每个权重的偏导数来更新网络中的参数。反向传播算法基本步骤:前向传播:将输入数据传递通过神经网络的各层,计算每一层的输出。计算损失
Win10 CMD命令大全 命令提示符常用命令有哪些
xitongzhijia_abc
win10windows
命令提示符常用命令有哪些?很多朋友都希望了解一下Win10CMD命令大全,因为学会了以后看起来会厉害很多,通过输入命令就可以完成一些操作,相信你也会感兴趣的。一、WindowsCMD命令大全1、按组合键Win(Windows图标键)+R键打开运行窗口,输入“cmd”按回车即可打开cmd命令提示符2、在窗口右击选择属性可进行个性化设置~命令功能1、calc启动计算器2、appwiz.cpl程序和功能
linux操作系统备份原理,Linux操作系统备份与还原方法浅谈
辟谣的大舌头LONG
linux操作系统备份原理
Linux是一个稳定而可靠的环境。但是任何计算系统都有无法预料的事件,比如硬件故障。拥有关键配置信息的可靠备份是任何负责任的管理计划的组成部分。在Linux中可以通过各种各样的方法来执行备份。所涉及的技术从非常简单的脚本驱动的方法,到精心设计的商业化软件。备份可以保存到远程网络设备、磁带驱动器和其他可移动媒体上。备份可以是基于文件的或基于驱动器映像的。可用的选项很多,您可以混合搭配这些技术,为您的
常用的Windows10命令大全+计算机快捷键
★愿与愁★
笔记cmdwindows
序言:在博客上看见一位大佬利用win命令实现了下拉式关机的方法,不得不收这种酷炫的操作真的是有惊艳到我,于是我心血来潮就在此汇总了一些win10中的cmd命令还有一些电脑便捷化组合键,希望可以在你需要的时候帮助到你们.目录以下为Windows10命令键盘快捷化组合键以下为Windows10命令1.calc:启动计算器2.appwiz.cpl:程序和功能3.certmgr.msc:证书管理实用程序4
jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
[金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
[入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s