项目经验
文章平均质量分 65
tim5wang
Geek极客精神可以追溯到什么时候?
展开
-
ES elasticsearch 从入门到放弃-Riot
ElasticSearch 是 Java语言技术栈的。当然这不影响你用Go 技术栈时的集成和使用。本文介绍 Riot 搜索引擎在 Github 上有5.8k 的 start,最近半年多没有新的Commit了,其基于悟空搜索引擎 和 sega分词器。其特性还不错:高效索引和搜索(1M 条微博 500M 数据28秒索引完,1.65毫秒搜索响应时间,19K 搜索 QPS)支持中文分词(使用 gse 分词包并发分词,速度 27MB/秒)支持逻辑搜索支持中文转拼音搜索(使用 gpy 中文转拼音)支持原创 2021-06-28 14:32:03 · 253 阅读 · 1 评论 -
ES elasticsearch 从入门到放弃-安装运行
环境安装JDK 1.8及以上版本保证有JAVA_HOME环境配置安装从官网下载https://www.elastic.co/cn/downloads/安装Elasticsearch 和 kibana(Mac系统为例)brew tap elastic/tapbrew install elastic/tap/elasticsearch-fullbrew install elastic/tap/kibana-full启动先启动es再启动kibanaelasticsearch &原创 2021-06-26 13:55:45 · 169 阅读 · 2 评论 -
几款值得推荐的PC端应用
本文推荐几款作者觉得非常值得推荐的PC桌面应用MobaXterm 是一个非常棒的windows平台的ssh工具。在用到它之前,用过Termius,界面优雅;用过finalshell,java开发,sftp和ssh一体;用过Xshell,流行,功能强大;直到我用到了MobaXterm,我才明白,这才是我想要的,功能最强大的ssh终端。除了前面那些工具支持的东西,还支持x-server,支持命令记录,还提供了可视化界面来方便你用ssh建立起代理隧道,简直不要太方便,它甚至还内置了一些小游戏。原创 2021-05-30 15:44:15 · 884 阅读 · 0 评论 -
Golang 微服务入门
一般来说,单点故障服务崩溃是不能被容忍的,因此都能满足分区容错性,因此可以认为 CAP 的 P 总是成立。因为可用性相比于一致性,更为重要,因此主流的做法是在满足 AP的同时,提高C,常用的方法如 最终一致性方案、TCC事务补偿型方案 和 最大努力通知型。X轴 —— 代表无差别的克隆服务和数据,工作可以很均匀的分散在不同的服务实例上;Y轴 —— 关注应用中职责的划分,比如数据类型,交易执行类型的划分;Z轴 —— 关注服务和数据的优先级划分,如分地域划分。缓存从用户端到CPU寄存器依次有。原创 2021-05-22 18:48:22 · 3426 阅读 · 0 评论 -
Java转Go快速入门教程
背景和综述作者作为校招新人入职,公司用Golang, 自己有Java、PHP的 Web 开经验,熟悉前端的Vue技术栈,在此之前没写过Golang项目,只是几个月前按照菜鸟教程看了一遍Golang的语法 ,了解其天生高并发的特性,知道其有协程、管道这两个重要的特性。入职当天就要求自学做一个Golang的新手村任务,做一个分布式的在2000并发访问下能够做到1000QPS的登录注册,期限一周,要求细节不便透露,这里就不详细展开了,本文所分享的干货主要来自于这个新手村任务的积累。本文主要分享自原创 2021-05-22 13:01:08 · 4948 阅读 · 0 评论 -
用户注册密码加密和后端校验的权衡
背景对于一个系统来说,显然把用户的密码使用明文存储是大忌,那么必然要加盐加密存储。在登录注册过程中,密码显然不能明文传输,那么必然会用https来做登录注册接口。但是 https 并不是绝对安全的,经常用抓包工具调试软件的就会明白,虽然条件苛刻,但是也能实现中间人攻击,那么为了安全,应该在浏览器或者客户端把密码先做加密处理(MD5),即使被中间人攻击了,也不会泄露密码。Link那么问题来了,对于后端开发人员来说,客户端是不能被信任的,如果采用MD5或其他摘要算法,后端是无法对密码强度进行检验的,如原创 2021-02-08 02:49:16 · 2807 阅读 · 3 评论 -
阿里云服务器封禁了SMTP 25号端口
踩了大半天坑的我,留下了程序员2020-1024的泪水坑就坑在阿里云封禁了25号端口,以至于你想搭一个公司域名的邮箱变得不可能(虽然阿里云是从安全角度考虑),不明真相的我,各种折腾防火墙、网管安全策略,如何折腾就是不work,就是现实连接不上别人家的smtp服务器,telnet 测试也是连不上,关键是搭好的服务器能收邮件,发布出去,轻易想不到是阿里云封禁了25号端口。如果您用的服务器用的是弹性公网IP(本人用的就是),会像上图那样显示,显示非本人资产。就算你成功解封了25端口,你依然不能自建邮..原创 2020-10-24 19:29:22 · 1753 阅读 · 0 评论 -
新人入职如何进行CodeReview
2021校招互联网大厂开奖,程序员薪资倒挂,含泪迎来1024正文开始:大厂比较注重长期价值,注重codereview (cr),我认为Code Review最大的作用促进工程师日常代码交流和技术成长,与此同时对产品质量进行把关。很多团队在Code Review前期重点会是找问题(代码规范、潜在缺陷、BUG,代码设计等等),越到后期它更大的意义将演变成工程师交流土壤的培育和人员成长的促进。CodeReview的目标CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成..原创 2020-10-24 14:35:21 · 908 阅读 · 0 评论 -
ES elasticsearch 从入门到放弃-ELK和ELS简介
https://www.carc.top/post/90.htmlELK解决方案ELK是什么?ELK = ElasticSearch + Logstash + Kibana这是一套开源的大型分布式的日志分析、搜索引擎解决方案。随着技术的发展,ELK不局限于那三者,又有了Beats,因此社区通常不再说ELK,而是说ElasticStack(下文简称 ElasticStack),也就是以ElasticSearch为核心的技术栈。ELS各个组件有什么作用?如下图所示:Beats 用于采集一切数原创 2020-08-06 09:06:10 · 3970 阅读 · 0 评论 -
python中open是可迭代对象但是不是迭代器
在使用progressbar打印进度条时,发现open(‘a.txt’)不能打印进度条网上demoimport timeimport progressbarbar = progressbar.ProgressBar(widgets=[ ' [', progressbar.Timer(), '] ', progressbar.Percentage(), ' (',...原创 2019-11-21 10:08:43 · 918 阅读 · 2 评论 -
云数据库清理无用数据时导致的容量爆满
大清早,看到关于1024程序员节的消息,心想今天会不会有什么惊喜呢?小期待~看客们且耐心听我讲故事,有干活,总结出血的教训。吃完饭,打开邮箱看看心想: 呆胶布,百分之八十而已,问题不大,数据库里百分之80%的数据都是从没分析过的日志,只写不读不更新,估计500万行了吧,删了前400万行就好了,今天又是成就感满满的充实一天呢。于是打算开始操作,流利的打开了Navicat Premi...原创 2019-10-24 14:24:19 · 741 阅读 · 0 评论 -
bash中正确处理文件或路径名中的空格
笔者在用一个pdftohtml命令把一大堆论文生成网站的脚本书写过程中,遇到一个问题:论文名称的空格在下面的代码中会被错误分割#!/bin/bashfor file in $(ls $1) # 这里的$1是第一个输入参数,遍历$1下的文件do echo $filedone目录是这样的运行结果是这样的,很明显没能处理好空格 "\ "解决方法很简单,加双引号即可:#!/bin...原创 2019-10-08 14:16:37 · 2255 阅读 · 0 评论 -
Libevent,libuv,libev,IOCP,asio,muduo,tbnet,epoll/select/poll 是什么?
Libevent、libev、libuv三个网络库,都是c语言实现的异步事件库Asynchronousevent library)原创 2019-08-20 17:51:38 · 1865 阅读 · 0 评论 -
开发中如何应对大量数据
SQL或者NoSQL的方案问题:本人开发的点餐系统,20家酒店每日200张账单,如此以来一年就能积累出百万张订单数据,每张订单中包含的菜品单品自定义菜品组合菜品几个到几十个,想想数据量就很恐怖,在这些数据之上需要实现许多报表,如哪个员工销售了哪些类别菜品的数量,员工在不同餐段的绩效,账单优惠统计,不同的菜品有的打折有的不打折…解决:如果按照传统的开发思路,账单应该是一个关系表,账单号...原创 2019-08-20 14:43:02 · 436 阅读 · 0 评论 -
JPA自定义原生SQL语句的查询结果如何转化为对象,三种方法
写在最前面(最近的感悟)这半年太忙了,好久没写博客了。写久了PHP项目,忽然想拾一拾JAVA项目,因为JAVA的消息队列、日志、分布式方案比较多,可以自己实现的功能比较多,具有比较高的性能,稳定性好,而且考虑到JAVA的开源中间件比较丰富,大数据生态多是JAVA的,适合搞大型项目,于是最近的项目后端采用了 Spring boot + JPA + Redis + MySQL,前端使用 Vue +...原创 2019-06-08 11:42:17 · 13914 阅读 · 5 评论 -
谷歌浏览器Chrome插件扩展开发教程
下文是我看到的一篇很好的Chrome扩展开发攻略,感觉很有价值,内容详尽,遂转载,为了尊重版权,推荐您移步至原文阅览。原文由小茗同学发表于小茗同学的博客园:【干货】Chrome插件(扩展)开发全攻略1. 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处。本文所有涉及到的大部分代码均在这个demo里面:https:/...转载 2019-06-08 11:30:00 · 5603 阅读 · 1 评论 -
HeadFirst设计模式笔记(一)策略模式,观察者模式
1. 设计原则找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。针对接口编程,而不是针对实现编程。多样组合,少用继承。为了交互对象之间的松耦合设计而努力。2. 设计模式1. 策略模式1.1 定义: 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。1.2 鸭子模拟器案例:原创 2017-07-17 08:58:42 · 317 阅读 · 0 评论 -
MySQL忘记密码或者因为修改mysql.user导致无法登陆解决方法
手贱改了mysql.user表信息,还改错了,导致无法登陆,解决方法如下: (适用于其他因权限无法登陆的情况)# 1. 后台运行mysld_sage 使得可以跳过安全验证登陆到数据库(/usr/bin/mysqld_safe --skip-grant-tables &)# 2. 登陆mysql,把mysql改正常,或者把数据库备份出来mysql# 3. 结束前面后台运行的进程ps -e原创 2017-11-20 15:27:02 · 922 阅读 · 0 评论 -
php实现文件夹访问,最基础,php在线文件管理系统
php实现的文件夹浏览: <?phpdefine('ROOTPATH','/tftp/data/');$spath = isset($_REQUEST)&&isset($_REQUEST['path'])?$_REQUEST['path'].'/':'';$path = ROOTPATH.$spath;echo '<hr/>'.xls($path);// 扫描文件夹子项目functio原创 2017-11-22 12:18:30 · 2756 阅读 · 0 评论 -
JAVA SE踩坑实践——程序最小化到系统托盘 SystemTray
核心就是使用SystemTray类。 其中笔者遇到的坑: 1. 图标没设置自适应大小:trayIcon.setImageAutoSize(true);导致只能显示所设图片的左上角空白 2. 为了项目导出后不依赖其他文件,图片放到src下某个包里,使用代码this.getClass().getClassLoader().getResource("prt.png")).getImage()获...原创 2018-06-24 17:37:50 · 950 阅读 · 2 评论 -
JAVA SE踩坑实践——网口热敏打印机编程遇到的坑
因为项目涉及到的保密等因素,这里不提供实现思路和代码,这里只提及部分知识点项目遇到的挑战项目要实现打印机IP复用(一个打印机可以虚拟成多个打印机)打印机打印相应越快越好手机端打印可能和打印机不在同一局域网(用的4G网络)一个酒楼可能有几十台打印机需要打单因为网络不畅/缺纸等问题造成的失败应当能够重打大量失败需要重打的任务应当不造成驱动拥堵,造成大量内存消耗或者打印延迟...原创 2018-06-24 18:26:44 · 1240 阅读 · 2 评论 -
JAVA SE踩坑实践——解析读写 ini配置文件,简易键值对存储类,AES加解密算法
解析ini配置文件,ini配置文件格式如下: 分为小节:[section] 键值对: key=valuepackage com.cdr.printer.view;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStre...原创 2018-06-24 21:15:36 · 505 阅读 · 1 评论 -
vue如何自我感觉良好地引入其他js文件
项目使用 vue-cli + webpack技术做开发,项目中有时需要引入非nodejs模块的js文件。经过摸索,采用下面的方式引入: 在build/webpack.base.conf.js里面的module.exports下加入:resolve: { extensions: ['.js', '.vue', '.json'], alias: { ...原创 2018-06-17 21:28:27 · 1778 阅读 · 0 评论 -
JAVA 秩序制作exe运行程序和安装包方法汇总
用java开发出来的程序,想给用户使用,直接给jar文件,用户没有jre,或者不会配java环境会造成诸多困扰。 于是就想把java打包的可执行jar包打包成exe可执行程序发布,本文介绍其过程。 jre6有93M,压缩后约30M。1. 精简jre,java8的jre动辄100+M,项目中有大量的不需要使用的包,可以精简掉,笔者试过的有三种方法:1.1 原始方法(原...原创 2018-07-13 16:17:29 · 4002 阅读 · 1 评论 -
java 实现一个简单的日志功能,输出到文件或者输出到控制台
项目中简单的记录日志,输出到控制台,上线直接设置输出级别,记录关键信息 实现了一个简单的日志,使用效果如上图,记录时间,日志类型,调用位置,消息内容。直接上代码,细节看注释import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.Out...原创 2018-08-08 10:52:18 · 14807 阅读 · 2 评论 -
java C/S架构的客户端自动更新实现
前言: 用java开发的客户端,还在不断开发完善中,客户有几十个时,如果挨个通知下载更新,就太麻烦了,于是实现了一个更新功能,以节省更新的人力物力。实现思路: 从服务器获取最新版本号,和当前版本判断,从而判断出是否需要更新从服务器下载最新版本到临时文件夹关闭当前程序,复制临时文件夹的新版本覆盖运行目录文件,启动程序(笔者最开始担心这个,敲黑板!,下面这句是重点) ...原创 2018-08-09 23:15:44 · 11120 阅读 · 9 评论 -
算法中的排序问题总结,时间复杂度为O(n)的排序,计数排序,桶排序,基数排序
线性时间的排序算法大学时学过的一些排序算法,像插入排序(直接插入排序,折半插入排序,希尔排序)、交换排序(冒泡排序,快速排序)、选择排序(简单选择排序,堆排序)、2-路归并排序(见我的另一篇文章:各种内部排序算法的实现)等,这些排序算法都有一个共同的特点,就是基于两两比较交换位置。本文将介绍三种非比较的排序算法:计数排序,基数排序,桶排序。它们将突破比较排序的Ω(nlgn)下界,以线性时间运行。...转载 2018-09-27 01:25:57 · 10077 阅读 · 0 评论 -
记两次“删跑路”经历
“MySQL从删库到跑路”听起来很不可思议很难发生,但是无奈的事情事实上很容易发生,可能没那么严重而已。第一次:旧的服务器版本不好使,并且想修改运维方案,需要给云服务器换系统。于是使用一个开源的SSH客户端finalshell从服务器上备份网站到本地,wordpress二次开发的网站,一些微信公众号网页小应用,一些用户图片等等,总共有两三百兆的零碎文件。选择了整个文件夹进行传输,经过了很久...原创 2018-10-05 11:46:57 · 991 阅读 · 0 评论 -
自己实现的一个PHP错误异常日志捕获类
调试代码调的心累,于是写一个Log类,用于记录错误日志特性:输出到控制台/文件/自定义方法可以通过错误等级进行过滤易用废话不多说,上代码:&lt;?php/** * Created by PhpStorm. * User: tim * Date: 2019/1/30 * Time: 15:41 * 功能:日志函数,用与捕获错误或者输出信息到指定的输出流。 * 用法...原创 2019-01-31 17:41:29 · 1168 阅读 · 0 评论 -
DAO层通用实现,结果集ResultSet转化为javaBean的反射实现,自动生成javaBean
在学习持久层框架之前,反复编写dao层代码编烦了,就自己实现了一个能方便地根据数据库表创建javaBean,并实现其增删改查,结果集转化为List集合,sql编译语句里参数赋值的自动化的“框架”。本文所使用的数据库是mysql自带的simple data里的sakila数据库先看一下使用效果实现过程核心代码如下 其余代码会在后面贴上 其余代码先看一下使用效果:先编写并运行测试类创建jav原创 2017-08-03 20:02:56 · 3621 阅读 · 0 评论