自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 记一次springboot应用偶发502错误的排查过程

我们有一个系统,自上线以来,总隔三差五有用户反馈偶尔会有请求502 bad gateway的情况产生,但发生频率不高,也没发现有什么规律。经反复测试我们发现如果系统开启了图片水印功能,这个现象就比较容易重现(刷新带有图片的页面的时候)。所以我们初步怀疑这个情况和图片处理肯定是有点关系的。502的error code是nginx返回的,而且返回速度很快,看起来上游要么是直接拒绝连接了,要么是连接上了之后很快返回了。通过直接访问springboot应用尝试,发现是后一种情况,chrome里面提示net::ERR

2021-11-19 19:46:17 6747 2

原创 HTTP/2 简介

HTTP/2,简称h2,是HTTP协议自1999年的HTTP1.1发布之后的首个更新。它主要基于SPDY协议,于2015年5月正式发表,多数浏览器已经在2015年底前支持了该协议。HTTP/2的最显著的改进主要体现在多路复用、允许设置请求优先级、压缩算法、二进制传输等,这些特性使得使用HTTP/2的应用获得更快、更简单、更稳定的效果。目前流行的RPC框架grpc也是采用了HTTP/2来进行传输的。HTTP/2没有改动HTTP的应用语义。之前熟悉的请求方法、状态码、URI、http headers等概念还是

2021-07-24 12:37:31 6188 3

原创 通过Java使用opencv识别二维码

OpenCV的全称是Open Source Computer Vision Library,它是一个跨平台的计算机视觉库,由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV本身由C++语言开发,但也具有各种其他语言的接口,并支持windows、linux、ios、android等各种操作系统。本文将介绍如何使用OpenCV与Java语言进行二维码识别。OpenCV的安装目前OpenCV最新的版本是4.5.2,根据所在平台不同,OpenCV有多种安装方式。

2021-05-11 20:04:13 4150 14

原创 Celery入门

Celery是一个简单可靠的分布式任务队列,它主要关注于实时任务处理,同时也能够支持定时任务。这个项目目前在github上有14.8k颗星,是一个比较热门的项目。Celery是采用Python语言编写的,但其他语言也可以实现它的协议,或者通过webhook与之交互。Celery本身也比较精巧,据官方文档介绍,Celery的核心总共只有7000多行代码,但有14000多行测试代码,所以质量应该也还是...

2020-04-11 13:05:27 393 2

翻译 TCP backlog在Linux下是如何工作的

原文链接:http://veithen.io/2014/01/01/how-tcp-backlog-works-in-linux.html当一个应用使用listen syscall将一个socket变成LISTEN状态时,它需要为该socket指定一个backlog值。这个backlog值通常被认为是接收传入连接的队列的长度限制。因为TCP采用三次握手,一个连接在到达可以被ac...

2019-05-18 12:07:31 352

原创 国税总局发票助手二维码生成的CRC计算

最近为了在我们的应用里生成发票信息的二维码,根据国税总局的二维码文档(见文后),唯一麻烦的地方就是需要计算一个CRC16的值。中间主要碰到了两个问题,一是文档中没有描述中文编码方式,经过试验,我们发现编码方式应为GBK。二是CRC值的生成,网上找了一些代码,生成的CRC16总是和总局发票助手生成的CRC16不一样。最后还是自己根据以下算法写了一个:1)将字节流的前2字节放入一个长度为1

2017-08-01 08:07:17 13536 4

原创 About Face 3 读书笔记

About Face3第一章 目标导向的设计产品成功的关键是目标,而不是特性好的设计让用户更有效率交互设计不是凭空猜测第二章 实现模型和心理模型心理模型:用户心中认为这件东西是怎样工作的实现模型:实际上是怎样工作的表现模型:看起来是怎样工作的表现模型越接近于心理模型,软件的易用性更强,反之用户界面设计应该基于信息时代的思维方式,而不是局限于机械时

2015-07-05 21:37:43 1337

翻译 Java 8 特性 – 终极指南

Java 8 特性 – 终极指南 (原文:http://www.javacodegeeks.com/2014/05/java-8-features-tutorial.html )编者注:Java 8出现在公众视野中已经有一段时间了,在这期间,种种迹象都表明Java 8是一个非常重要的版本。我们已经在Java Code Geeks提供了很多丰富的

2014-11-08 14:11:31 2973

原创 Ruby的p puts print

ruby中有好几个输出到console的方法,最常见的是p, puts和print。 每次用的时候都会查一下这些方法的区别,不过过段时间又忘了。。。所以记录在这里,下次直接来这里找就可以了:)puts方法在输出后,会自动换行(如果输出的字符串本身有换行,则puts不会再加额外的换行上去),并且会转义。puts可以接受多个参数,每个参数都是输出成单独的一行。Kernel的puts ==

2013-05-19 23:44:09 2391

原创 About class << self in ruby

在ruby中经常可以见到这样的写法:class A class << self def hello puts "hello" end endend这样的写法和class A def self.hello puts "hello" endend可以说是完全一样的。第一种写法的一个好处是,如果需要在一个class

2012-12-17 23:36:06 3307

原创 A Tour of Go - Exercise: Web Crawler

A Tour of GoExercise: Web CrawlerIn this exercise you'll use Go's concurrency features to parallelize a web crawler.Modify the Crawl function to fetch URLs in parallel without fetching

2012-12-16 22:47:19 2433

原创 A Tour of Go - Exercise: Equivalent Binary Trees

A Tour of GoExercise: Equivalent Binary TreesThere can be many different binary trees with the same sequence of values stored at the leaves. For example, here are two binary trees storin

2012-12-16 21:23:34 1332

原创 A Tour of Go: Exercise: Rot13 Reader

A Tour of GoExercise: Rot13 ReaderA common pattern is an io.Reader that wraps another io.Reader, modifying the stream in some way.For example, the gzip.NewReader function takes an io

2012-12-16 17:03:15 1451

原创 如何重启 synology nas的sshd

/usr/syno/sbin/synoservice --restart ssh

2012-12-13 00:22:57 8457

原创 ruby中gsub和gsub!的区别

ruby中带“!"和不带"!"的方法的最大的区别就是带”!"的会改变调用对象本身了。比方说str.gsub(/a/, 'b'),不会改变str本身,只会返回一个新的str。而str.gsub!(/a/, 'b')就会把str本身给改了。但是gsub和gsub!还有另外一个不同点就是,gsub不管怎么样都会返回一个新的字符串,而gsub!只有在有字符被替换的情况下才会返回一个新的字符串,

2012-11-08 23:40:12 15427

原创 如何用最少的比较次数找出一个数列的最大和最小值

当我们需要找出一个数列中的最大值或者最小值的时候,至少需要n-1次比较。如果我们同时需要找到最大值和最小值,最常见的做法就是对每个元素,分别和最大值和最小值都比一下,这样每个元素都需要2次的比较。但这里其实是可以优化的,如果我们同时取出数列中的两个元素,先让他们自己比较一下,然后把比较大的那个和当前最大值比,把比较小的那个和当前最小值比。这样2个元素只需要3次比较就能完成,比之前能够节省1次比较时

2012-04-02 21:03:07 7572

原创 jboss AS7 如何监听所有地址

jboss AS7默认和之前的版本一样,只监听127.0.0.1,用真实ip是不能访问的。 对于以前的版本我们可以在启动时运行run -b xxx.xxx.xxx.xxx来解决这个问题,但在AS7中,需要修改standalone\configuration\standalone.xml,找到 改为

2011-07-30 21:51:17 1475

原创 为什么android中的AlertDialog要用一个内部的static class Builder来创建呢?

最近看一些android的代码,发现他的AlertDialog是需要用类似下面的代码来创建的:new AlertDialog.Builder(this) .xxxx 进入到AlertDialog的源代码,可以看到AlertDialog是继承于Dialog,并且他的构造函数都是声明成protected的。而Builder是一个内部的public static class. Build

2011-02-07 15:16:00 2804 6

原创 java.nio.ByteBuffer的filp方法

<br />在看nio的一个示例程序的时候看到ByteBuffer的filp方法,没想明白它是做什么用的。jdk的comment写到:<br /> <br /><br />Flips this buffer.  The limit is set to the current position and then the position is set to zero.  If the mark is defined then it is discarded.<br /> <br />还是没明白。。。<br /

2010-09-23 17:02:00 1307

原创 安装NGINX的步骤

<br />记录一下以免自己忘记<br /> <br />1. wget http://nginx.org/download/nginx-0.7.65.tar.gz<br />2. tar xzf nginx-0.7.65.tar.gz<br />3. wget http://hg.mperillo.ath.cx/nginx/mod_wsgi/archive/0.0.6.tar.gz<br />4. tar xzf 0.0.6.tar.gz<br />5. 在nginx目录中 ./configure --a

2010-08-18 09:00:00 507

原创 centos下改变apache的MPM方式

默认是perfork要改成worker方式的话,把/etc/sysconfig/httpd文件中的下面这句话取消注释:HTTPD=/usr/sbin/httpd.worker

2010-05-08 16:27:00 894

原创 javascript: 正则表达式

正则表达式 RegExp(regexp, option)类实现,可以简写成/regexp/optionoption: g: global, i: ignore case方法:string.test(regexp), string.exec(regexp)[返回所有匹配的地方], string.serch(regexp)[正则版的indexOf()], strin

2010-05-06 15:28:00 464

原创 javascript: The Document Object Model(DOM)

DOM节点类型的12个常量: Node.ELEMENT_NODENode.ATTRIBUTE_NODENode.TEXT_NODENode.CDATA_SECTION_NODENode.ENTITY_REFERENCE_NODENode.ENTITY_NODENode.PROCESSING_INSTRUCTION_NODENode.COMMENT_NOD

2010-05-06 15:02:00 662

原创 javascript: The Browser Object Model(BOM)

windowwindow对象是浏览器或者框架自身.top总是浏览器,parent是父框架,self表示自己. window通常可以省略.窗口操作: moveBy(dx, dy), moveTo(x, y), resizeBy(dw, dh), resizeTo(w, h).导航: window.open(url, frame name, attribute). at

2010-05-06 15:00:00 901

原创 Crystal Report中导出Excel遇到的问题和解决方法

最近的项目中用到了Crystal Report导出Excel,而且user对Excel format的格式要求非常高,以下是我们遇到的和解决方法线和线框无法导出。在Crystal Report里面你即使画了线(Line)或者线框(Box),导成Excel之后是看不到的。解决的方法就是用text field的边框来代替画线或者画框。单元格错位问题。当header和detail里面的textf

2009-12-09 23:14:00 5721 1

原创 Grails 单元测试中的错误

在用grails写一个对Service的单元测试的时候,test case失败了,产生的错误是: No such property: log for class: ArticleCollectionServicegroovy.lang.MissingPropertyException: No such property: log for class: ArticleCollecti

2009-12-09 23:05:00 767

转载 生成对象的方法比较

<!-- google_ad_client = "pub-2141342037947367"; google_ad_width = 125; google_

2005-01-10 10:39:00 1107

原创 字节流与字符流的区别

字节流与字符流主要的区别是他们的的处理方式字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和St

2004-12-23 12:45:00 4566 1

转载 关于ASP.NET在IIS一些问题的经验总结(zz)

 很多开发人员对于IIS和ASPNET的安装等问题困扰,特此做下面的小总结,请大家多交流!iis 坏了修复办法!!!!!!!  一般IIS运行不了ASP.NET,试一下下面四种方法,99%有效: 1。.NET 安装的顺序应该是先装IIS,再装VS.NET,如果次序反了,或者IIS重装了,就需要使用aspnet_regiis.exe -i来重新安装IIS Mappin

2004-10-28 21:16:00 977

转载 入门训练:写程序应注意的事项

        1.对于文本编辑框,一定要判断是否含有非法字符。对于数字型一定要判断是否含有非数字。对于字符型,一定要判断是否在允许的字符内。  2.对于在某一个期间,一定要判断前面一个日期是否大于后面一个日期。还要判断2月份的日期。(www.chinaren.com中的出生日期就没有判断这一点)。不要告我诽谤:)  3.对于路径选择,一定要判断路径是否合法,是否可以访问。输入的路径长度是否超过了

2004-10-27 14:04:00 953

原创 linux内核编译

1.去www.kernel.org下载内核2.bunzip2 filename.tar.bz23.tat -xvf filename.tar4.ln -s filename linux2.x5.make menuconfig6.make clean7.make bzImage8.make modules9.make modules_i

2004-09-19 15:17:00 929

转载 使用浮点数和小数中的技巧和陷阱

许多程序员在其整个开发生涯中都不曾使用定点或浮点数,可能的例外是,偶尔在计时测试或基准测试程序中会用到。Java 语言和类库支持两类非整数类型 — IEEE 754 浮点(float 和 double,包装类(wrapper class)为 Float 和 Double),以及任意精度的小数(java.math.BigDecimal)。在本月的 Java 理论和实践中,Brian Goetz 探讨

2004-09-13 16:31:00 4014 2

原创 关于java运行环境的配置

在安装完j2sdk后,需要进行环境变量的配置一般配置2个变量:JAVA_HOME,CLASSPATH假如j2sdk安装在c:/j2sdk目录下,则:JAVA_HOME = C:/j2sdkCLASSPATH = .;%JAVA_HOME%/lib在以前的jdk版本中,classpath是必须写到jar包为止的即CLASSPATH = .;%JAVA_HOME%/lib/tools.jar;%JAV

2004-09-09 10:21:00 1266

51制作的时钟,带温度测量

51单片机与ds1302制作的时钟程序,可调节时间,带ds18b20温度检测。文件中包含所有源代码(Keil uVision4工程),proteus仿真文件,以及Altium Designer原理图和PCB图。PCB适用于热转印制作单面板。 所以程序已经在实际硬件上验证过。

2012-02-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除