自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个人的孤落时辰

本博客不再重点维护,新博客请移步至: https://blog.yuanpei.me.。另:5年.NET后端、熟悉.NET Core、Python、微服务,坐标西安

  • 博客(268)
  • 资源 (2)
  • 论坛 (7)
  • 收藏
  • 关注

原创 基于 Python 和 Selenium 实现 CSDN 一键三连自动化

最近一段时间,博主感觉到了某种危机感,或者说是每一个不再年轻的人都会面对的问题,即,怎么面对来自更年轻的“后浪”们的压力,自打国内IT行业有了35岁这个不成文的“门槛”以后,年轻的“后浪”们仿佛有了更多将“前浪”们拍死在岸上的勇气,我辈忍不住要叹一声后生可畏啊!我认识的 Catcher Wong 正是这样一位大佬,此君虽然比我小三岁,可在技术的广/深度以及经验的丰富程度上,足以令我这个”老人”汗颜,单单 EasyCaching 这一项,就令人望尘莫及啦!我看着他的时候,一如当年 Wesley 大哥看着我的时

2021-01-23 22:46:22 10

原创 使用多线程为你的Python爬虫提速的N种姿势,你会几种?

本文附带福利向Python脚本一个,学习多线程与爱美之心兼得,关注和订阅博主的专栏即可领取!文章目录楔子线程与线程池ThreadThreadPoolThreadPoolExecutor进程与进程池ProcessProcessPoolProcessPoolExecutor协程与异步I/Oasynciorequests本文小结最近博主在优化一个爬虫程序,它是博主在2017年左右刚接触 Python 时写下的一个程序。时过境迁,当 Python 2.X 终于寿终正寝成为过去,当博主终于一只脚迈进30岁的大.

2021-01-16 13:00:50 103 2

原创 实现网页长截图的常见思路总结

作为一个经常写博客的人,我有时会在微博上分享博客内容,可不知道从什么时候开始,国内互联网越来越丧失信仰,所有的厂商都在试图打造一个“只进不出”的信息孤岛,进而达到增强“用户黏度”的目的。以微博为例,微博中的外链永远都会被转化为短地址,并且无法通过微博内置的浏览器进行跳转。即使你通过手动复制链接的方式打开链接,你依然需要至少两个步骤方能见到“庐山真面目”。借鉴/抄袭这一陋习的还有简书,花时间做了一个第三方链接跳转提示页面,唯独不愿意在上面加一个a标签,你还是要手动复制黏贴。坦白说,我觉得国内互联网正在丧失着信

2021-01-10 15:46:55 7711 6

原创 温故而知新,由ADO.NET与Dapper所联想到的

文章目录重温ADO.NET实现DynamicRow实现参数化查询本文小结这段时间在维护一个“遗产项目”,体验可以说是相当地难受,因为它的数据持久化层完全由ADO.NET纯手工打造,所以,你可以在项目中看到无所不在的DataTable,不论是读操作还是写操作。这个DataTable让我这个习惯了Entity Framework的人感到非常别扭,我并不排斥写手写SQL语句,我只是拥有某种自觉并且清醒地知道,自己写的SQL语句未必就比ORM生成的SQL语句要好。可至少应该是像Dapper这种程度的封装啊,因为关

2021-01-01 15:05:15 183

原创 视频是不能P的系列:OpenCV人脸检测

恍惚间,2020年已接近尾声,回首过去这一年,无论是疫情、失业还是“996”,均以某种特殊的方式铭刻着这一年的记忆。也许,是这个冬天的西安雾霾更少一点。所以,有时透过中午的一抹冬阳,居然意外地觉得春天的脚步渐渐近了,甚至连圣诞节这种“洋节日”都感到亲切而且期待,我想,这大概是我丧了一段时间的缘故吧!可不管怎样,人们对未来的生活时常有一种“迷之自信”,果然生还还是要继续下去的呀!趁着最近的时间比较充裕,我决定开启一个信息的系列:视频是不能P的。这是互联网上流传的一个老梗了,正所谓“视频是不能P的,所以是真的”

2020-12-26 13:52:39 369

原创 作为技术宅的我,是这样追鬼滅の刃的

有人说,“男人至死都是少年”,而这句听起来有一点中二的话,其实是出自一部同样有一点中二的动漫——银魂。我个人的理解是,知世故而不世故。也许,年轻时那些天马行空的想法,就像堂吉诃德大战风车一样荒诞,可依然愿意去怀着这样的梦想去生活。正如罗曼罗兰所言,“世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活”。所以,继《浪客剑心》之后,我再次被一部叫做《鬼灭之刃》的动漫吸引,毕竟男人的快乐往往就是这么朴实无华且枯燥。一个快三十岁的人,如果还能被一部热血少年番吸引,大概可以说明,他身体里的中二少年连同中二少年魂

2020-12-18 00:44:20 639

原创 使用Python抽取《半泽直树》原著小说人物关系

此时此刻,2020年的最后一个月,不过这一年给我们留下了怎样的记忆,时间终究自顾自地往前走,留给我们的怀念已时日无多。如果要说2020年的年度日剧,我想《半泽直树》实至名归,这部在时隔七年后上映的续集,豆瓣评分高达9.4分,一度超越2013年第一部的9.3分,是当之无愧的现象级电视剧,期间甚至因为疫情原因而推迟播出,这不能不感谢为此付出辛勤努力的演职人员们。身为一个“打工人”,主角半泽直树那种百折不挠、恩怨分明的性格,难免会引起你我这种“社畜”们的共鸣,即使做不到“以牙还牙,加倍奉还”,至少可以活得像一个活

2020-12-10 20:17:12 624 3

原创 厉害了!打工人用Python分析西安市职位信息

在上一篇博客中,我和大家分享了整个11月份找工作的心路历程,而在找工作的过程中,博主发现西安大小周、单休这种变相“996”的公司越来越多,感慨整个行业越来越“内卷”的同时,不免会对未来的人生有一点迷茫,因为深圳已经开始试运行“996”了,如果有一天“996”被合法化并成为一种常态,那么,我们又该如何去面对“人会一天天衰老,总有一天肝不动”的客观规律呢?我注意到Boss直聘移动端会展示某个公司的作息时间,所以,我有了抓取西安市职位和公司信息并对其进行数据分析的想法,我想知道,这到底是我一个人的感受呢?还是整个

2020-12-05 21:54:24 5118 13

原创 一个西漂打工人的求职心路

其实,这段故事说出来,多少有一点难为情,因为我实在没有想到,这一切会变得这样艰难。10月份从上一家公司离职的时候,当时,我手上有两个Offer,一家是做旅游类产品的创业公司,一家则是声名狼藉的中软国际。因为刚来西安时,面对人生地不熟的新环境,曾经在这里有过一段时间的工作经历,所以,我从本能上排斥再回到那种地方。而创业公司本身的不稳定性,一度让我感到纠结,而最终的结果是,我放弃了这两份Offer。此时,对于一个工作刚满年的人来说,一个月13K或14K的薪水,我感到相当的知足。此后,我面试了奥博杰天(Obj

2020-11-19 13:27:30 272 3

原创 使用dotTrace对.NET应用进行性能分析

前几天,有位朋友问我,你平时都是怎么去排查一个程序的性能问题的啊。不要误会,这位朋友不是我啦,因为我真的有这样一位叫做 Toby 的朋友。说到性能问题,可能大家立马会想到类似并发数、吞吐量、响应时间、QPS、TPS等等这些指标,这些指标的确可以反映出一个系统性能的好坏。可随着我们的系统结构变得越来越复杂,要找到这样一个性能的“损耗点”,同样会变得越来越困难。在不同的人的眼中,对于性能好坏的评判标准是不一样的,譬如在前端眼中,页面打开速度的快慢代表着性能的好坏;而在后端眼中,并发数、吞吐量和响应时间代表着性能

2020-11-02 15:59:18 4431 12

原创 一道HashSet面试题引发的蝴蝶效应

没错,我又借着“面试题”的名头来搞事情了,今天要说的是 HashSet ,而这确实是一个实际面试中遇到的问题。当时的场景大概是这样的,面试官在了解了你的知识广度以后,决心来考察一番你的基本功底,抛出了一个看起来平平无奇的问题:说一说你平时工作中都用到了哪些数据结构。你心想,这还不简单,Array、ArrayList、List、Dictionary、HashSet、Stack、Queue…等等各种集合类简直如数家珍,甚至你还能说出这些数据结构间的优劣以及各自使用的场景。可没想到,面试官话锋一转,直接来一句,“

2020-10-26 10:10:37 4274

原创 基于选项模式实现.NET Core的配置热更新

最近在面试的时候,遇到了一个关于 .NET Core 配置热更新的问题,顾名思义,就是在应用程序的配置发生变化时,如何在不重启应用的情况下使用当前配置。从 .NET Framework 一路走来,对于 Web.Config 以及 App.Config 这两个配置文件,我们应该是非常熟悉了,通常情况下, IIS 会检测这两个配置文件的变化,并自动完成配置的加载,可以说它天然支持热更新,可当我们的视野伸向分布式环境的时候,这种配置方式就变得繁琐起来,因为你需要修改一个又一个配置文件,更不用说这些配置文件可能都.

2020-10-13 00:33:20 2277 2

原创 .NET Core中对象池(Object Pool)的使用

在此前的博客中,博主参考 eShopOnContainers 实现了一个基于RabbitMQ的事件总线(EventBus)。在这个项目中,它提供了一个持久化连接的类DefaultRabbitMQPersistentConnection,主要解决了RabbitMQ在连接断开后自动重连的问题,可实际上我们都知道,RabbitMQ提供的连接数是有一个上限的,如果频繁地使用短连接的方式,即通过ConnectionFactory的CreateConnection()方法来创建一个连接,从本质上讲,一个Connecti

2020-08-25 17:54:54 673

原创 利用MySQL的Binlog实现数据同步与订阅(下)

终于到这个系列的最后一篇,在前两篇博客中,我们分别了介绍了Binlog的概念和事件总线(EventBus)的实现,在完成前面这将近好几千字的铺垫以后,我们终于可以进入正题,即通过EventBus发布Binlog,再通过编写对应的EventHandler来订阅这些Binlog,这样就实现了我们“最初的梦想”。坦白说,这个过程实在有一点漫长,庆幸的是,它终于还是来了。Binlog读取与解析首先,我们通过 Python-Mysql-Replication 这个项目来读取Binlog,直接通过pip insta

2020-08-25 17:21:07 1053

原创 利用MySQL的Binlog实现数据同步与订阅(中)

紧接上一篇博客中的思路,这次我们来说说事件总线(EventBus),回首向来,关于这个话题,我们可能会联想到发布-订阅模式、观察者模式、IObservable与IObserver、消息队列等等一系列的概念。所以,当我们尝试着去解释这个概念的时候,它到底是什么呢?是一种设计模式?是一组API接口?还是一种新的技术?显而易见,发布-订阅模式和观察者模式都是设计模式,而IObservable与IObserver、消息队列则是具体的实现方式,就像你可以用委托或者事件去实现一个观察者模式,而Redis里同样内置了发布

2020-08-25 17:16:22 1104

原创 利用MySQL的Binlog实现数据同步与订阅(上)

终于等到了周末,在经历了一周的忙碌后,终于可以利用空闲写篇博客。其实,博主有一点困惑,困惑于这个世界早已“堆积”起人类难以想象的“大”数据,而我们又好像执着于去“造”一个又一个“差不多”的“内容管理系统”,从前我们说互联网的精神是开放和分享,可不知从什么时候起,我们亲手打造了一个又一个的“信息孤岛”。而为了打通这些“关节”,就不得不去造一张巨大无比的蜘蛛网,你说这就是互联网的本质,对此我表示无法反驳。我更关心的是这其中最脆弱的部分,即:一条数据怎么从A系统流转到B系统。可能你会想到API或者ETL这样的关键

2020-08-25 16:55:22 1994 2

原创 原生JavaScript实现Hexo博客推荐功能

有时候,我不禁在想,我们到底处在一个什么样的时代呢?而之所以会有这样的疑问,则是因为我们的习惯在不断地被这个时代向前推进,就像我用了两年多的魅蓝Note6屏幕出现了问题,扫视了一圈新手机,居然再找不出一款带实体键的手机,刘海屏、水滴屏、破孔屏、异形屏、曲面屏等等简直令人眼花缭乱,唯独没有一款让我感到熟悉的非全面屏手机。做软件的时候,会不明白那些似是而非的定制需求的差异,可为什么偏偏到了硬件的时候,大家就能被迫适应这些越来越同质化的东西呢?也许有和我一样怀念非全面屏的人,可对于这个时代而言,一切都好像无足轻重

2020-06-22 11:44:11 936

原创 .NET Core原生DI扩展之基于名称的注入实现

接触 .NET Core 有一段时间了,最大的感受无外乎无所不在的依赖注入,以及抽象化程度更高的全新框架设计。想起三年前 Peter 同学手写 IoC 容器时的惊艳,此时此刻,也许会有不一样的体会。的确,那个基于字典实现的 IoC 容器相当“简陋”,就像 .NET Core 里的依赖注入,默认(原生)都是采用构造函数注入的方式,可其实从整个依赖注入的理论上而言,属性注入和方法注入的方式,同样是依赖注入的实现方式啊。最近一位朋友找我讨论,.NET Core 里该如何实现 Autowried,这位朋友本身是 J

2020-06-22 11:39:00 1184

原创 通过EF/Dapper扩展实现数据库审计功能

相信大家都有过周末被电话“吵醒”的经历,这个时候,客服同事会火急火燎地告诉你,客户反馈生产环境上某某数据“异常”,然后你花费大量时间去排查这些错误数据,发现这是客户使用某一种“骚”操作搞出来的“人祸”。可更多的时候,你不会这么顺利,因为你缺乏有力的证据去支持你的结论。最终,你不情愿地去处理了这些错误数据。你开始反思,为什么没有一种流程去记录客户对数据的变更呢?为什么你总要花时间去和客户解释这些数据产生的原因呢?好了,这就要说到我们今天这篇博客的主题——审计。什么是审计?结合本文引言中的描述的场景,当我们

2020-05-11 11:04:45 815

原创 .NET Core + ELK搭建可视化日志分析平台(上)

Hi,各位朋友,大家好!欢迎大家关注我的博客,我的博客地址是: https://blog.yuanpei.me。今天是远程办公以来的第一个周末,虽然公司计划在远程两周后恢复正常办公,可面对着每天都有人离开的疫情,深知这一切都不会那么容易。窗外的阳光透过玻璃照射进屋子,这一切都昭示着春天的脚步渐渐近了。可春天来了,有的人却没有再回来。那些在2019年结束时许下的美好期待、豪言壮语,在这样一场灾难面前...

2020-03-04 11:08:57 1578

原创 使用 jsDelivr 为 Hexo 博客提供高效免费的CDN加速

最近给博客做了升级,从3.x升级到了4.x,主要是在官网看到了关于静态页面生成效率提升的内容。众所周知,Hexo在文章数目增加以后会越来越慢。博主大概是从14年年底开始使用Hexo这个静态博客的,截止到目前一共有176篇博客,其中的“慢”可想而知,中间甚至动过使用Hugo和VuePress的念头,所以,听说有性能方面的提升,还是决定第一时间来试试。整个升级过程挺顺利的,唯一遇到的问题是关于外部链接...

2020-03-04 11:06:40 1537

原创 从 .NET Core 2.2 升级到 3.1 的踩坑之旅

有时候,版本更新太快并不是一件好事。虽然,两周一个迭代的“敏捷”开发依然被客户嫌弃交付缓慢,可一边是前端领域“求不要再更新了,学不动了”的声音,一边则是.NET Core从1.x到2.x再到3.x的高歌猛进。版本更新太快,带来的是API的频繁变动,无法形成有效的知识沉淀,就像转眼到了2020年,Python2.x和Windows7都引来了“寿终正寝”,可能你都还没有认真地学习过这些知识,突然就被告...

2020-01-23 10:52:46 4515

原创 使用Liquid实现简单的数据交换

在平时的开发工作中,接口对接是一件无可避免的事情。虽然在“前后端分离”的大趋势下,后端的角色逐渐转换为数据接口的提供者,然而在实际的应用场景中,我们面对的往往是各种不同的“数据”,譬如企业应用中普遍使用的企业服务总线(ESB),这类服务要求服务接入者必须使用WebService来作为数据交换格式;再譬如电子数据交换(EDI)这种特定行业中使用的数据交换格式,从可读性上甚至还不如基于XML的WebS...

2019-12-29 14:44:08 1246

原创 Referrer还是Referer? 一个迷人的错误

诗人郑愁予曾经在一首诗中写道:我达达的马蹄是个美丽的错误,我不是归人,是个过客。而对我来说,十九岁之前的我,一样是个沉浸在诗歌中的文艺少年。十九岁之后的我,作为一名程序员,更多的是邂逅各种错误。可偏偏人类世界对待错误从来都不宽容,所以,错误本身既不美丽,亦不浪漫。接近中年的我,无论如何,都写不出年轻时令人惊艳的句子,这或许和我们面对错误时的不同心境,有着莫大的关联,而今天这篇博客,同样要从一个历史...

2019-12-29 14:43:01 1106 1

原创 浅析网站PV/UV统计系统的原理及其设计

国庆节前有段时间,新浪的“图床”一直不大稳定,因为新浪开启了防盗链,果然免费的永远是最贵的啊。为了不影响使用,我非常粗暴地禁止了浏览器发送Referer,然后我就发现了一件尴尬的事情,“不蒜子”统计服务无法使用了。这是一件用脚后跟想都能想明白的事情,我禁止了浏览器发送Referer,而“不蒜子”正好使用Referer来识别每个页面,所以,这是一个再明显不过的因为需求变更而引入的Bug。这个世界最离...

2019-12-29 14:41:21 2788 1

原创 使用Python开发插件化应用程序

插件化应用是个老话题啦,在我们的日常生活中更是屡见不鲜。无论是多年来臃肿不堪的Eclipse,亦或者是扩展丰富著称的Chrome,乃至近年来最优秀的编辑器VSCode,插件都是这其中重要的组成部分。插件的意义在于扩展应用程序的功能,这其实有点像iPhone手机和AppStore的关系,没有应用程序的手机无非就是一部手机,而拥有了应用程序的手机则可以是Everything。显然,安装或卸载应用程序并...

2019-12-29 14:39:55 1474 2

原创 百度地图加载海量标注性能优化策略

在上一篇博客中关于Vue表单验证的话题里,我提到了这段时间在做的城市配载功能,这个功能主要着眼于,如何为客户提供一条路线最优、时效最短、装载率最高的路线。事实上,这是目前物流运输行业智能化、专业化的一个趋势,即面向特定行业的局部最优解问题,简单来说,怎么样能在装更多货物的同时满足运费更低的条件,同时要考虑超载等等不可抗性因素,所以,这实际上是一个数学问题。而作为这个功能本身,在地图上加载大量标注更...

2019-11-26 17:48:37 5060

原创 Vue快速实现通用表单验证

本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...

2019-11-26 17:10:54 8662 12

原创 在WSL中使用Linux桌面环境的尝试与总结

最近忙里偷闲的博主,再次迷恋上折腾Linux。话说自从微软推出WSL以后,我就彻底地停止了Windows + Linux 的双系统组合。回想起从前使用过的各种Linux发行版,基本上每隔一段时间就会崩溃一次,所以,面对WSL这种近乎应用级别的方案,我个人是非常愿意去接受的。因为一不小心玩坏了的话,可以直接对应用程序进行重置,或者重新从应用商店下载,相比重装系统,我觉得这种方式要更友好一点。虽然说W...

2019-08-25 11:22:03 8412 5

原创 通过ApiExplorer为Swagger提供MVC扩展

我一直想吐槽下运维同事提供的Jekins项目模板,因为它居然不支持含有多个项目的解决方案。作为一个有追求的程序员,每个解决方案下最少应该含有两个项目,即项目本身和项目对应的单元测试。可惜在这样一种情形下,我没法再去坚持这样的原则,而这真正让我感到难过的是,为了在编译环节向Jekins妥协,大家在一个项目里极尽所能,在这一个项目里居然混合了MVC、WebApi和WebService三种技术,甚至到最...

2019-08-25 11:20:53 883 5

原创 .NET Core POCOController在动态Web API中的应用

Hi,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是:https://blog.yuanpei.me。在上一篇文章中,我和大家分享了ASP.NET中动态Web API的实现,这种方案的现实意义是,它可以让我们把任意一个接口转换为Web API,所以,不单单局限在文章里提到的WCF迁移到Web API,任意领域驱动开发(DDD)中的服务层,甚至是更为普遍的传统三层,都可以通过这种方式快...

2019-08-25 11:19:24 769

原创 长安十二时辰随想

年少时未见长安,难以想象万国来朝的盛唐气象,心中最为仰慕的人物,是那个“好剑术、喜任侠“、二十五岁“仗剑去国、辞亲远游”的李白。人在年少轻狂的时候,容易因为一个人的豪迈不羁,而选择性地模糊一个时代的印象。于是,长安就蓦地变成了李太白大放异彩的舞台。印象里的长安,是一个可以让人吟咏“安能摧眉折腰事权贵,使我不得开心颜”的地方,是一个可以让“贵妃捧墨、力士脱靴”的地方,是一个“绣口一吐,就是半个盛唐”...

2019-08-25 11:17:35 981 3

原创 使用ASP.NET Core和Hangfire实现HTTP异步化方案

Hi,大家好,我是Payne,欢迎大家一如既往地关注我的博客。今天这篇博客里的故事背景,来自我工作中的一次业务对接,因为客户方提供的是长达上百行的XML,所以一度让更喜欢使用JSON的博主感到沮丧,我这里不是想讨论XML和JSON彼此的优缺点,而是我不明白AJAX里的X现在基本都被JSON替代了,为什么还有这么多的人坚持使用并友好的XML作为数据的交换协议呢?也许你会说,因为有这样或者那样等等的理...

2019-07-14 23:27:23 2941

原创 通过动态Controller实现从WCF到Web API的迁移.

在《又见AOP之基于RealProxy实现WCF动态代理》这篇文章中,我和大家分享了关于使用动态代理来简化WCF调用过程的相关内容,当时我试图解决的问题是,项目中大量通过T4生成甚至手动编写的“代理方法”。今天,我想和大家分享的是,如何通过动态的Controller来实现从WCF到Web API的迁移。为什么会有这个环节呢?因为我们希望把一个老项目逐步迁移到.NET Core上面,在这个过程中首当...

2019-07-14 23:23:05 489

原创 《Web API 的设计与开发》读书笔记

设计优美的Web API:易于使用、便于更改、健壮性好、不怕公开REST的两层含义:指符合Fielding的REST架构风格的Web服务系统指使用符合RPC风格的XML或JSON + HTTP接口的系统(不使用SOAP)端点的基本设计:短小便于输入的URI-人可以读懂的URI没有大小写混用的URI修改方便的URI不暴露服务端架构的URI规则统一的URIHTTP方法和...

2019-07-14 23:20:09 1262 1

原创 又见AOP之基于RealProxy实现WCF动态代理

最近一直在研究Mongodb和ElasticSearch之间同步数据的问题,苦于到目前为止,并没有取得任何实质性的进展。偶尔“趁得浮生半日闲暇”,看一看Web API设计方面的书籍,和前辈交流下项目中的历史遗留问题,最为直观的感受就是,这个世界上任何方案的最终落地,都经过理想和现实的无数次挣扎,比如我们希望迁移项目到.NET Core平台上,初步分析大概有将近1000多个无法兼容的地方,维持现状固...

2019-07-14 23:15:57 510

原创 WSL下Docker使用踩坑小记

众所周知,Win10中开始提供Linux子系统,即Windows Subsystem for Linux,简称WSL,它可以让我们在Windows系统使用Linux系统,自从有了这个新功能以后,博主果断地放弃双系统的方案,因为折腾起来实在花费时间。关于如何使用WSL,网上有非常多的文章可以参考,这里不再赘述。今天想说的是,WSL下使用Docker遇到的各种坑。装完WSL以后,对各种编译环境的使用...

2019-05-03 23:05:26 11084 4

原创 由DBeaver与PL/SQL引发的数据库吐槽

因为工作中需要同时面向MySQL、Oracle和SQLServer三种数据库进行开发,所以,大概从去年国庆节开始,我开始使用一个开源的数据库管理工具——DBeaver。使用这个工具的初衷,是因为我不想在同一台电脑上安装三个客户端工具,尤其是Oracle和SQLServer这种令人恐惧的、动辄需要重装系统的应用程序。我不想再使用类似Navicat这样的软件,因为它的画风像是上个世纪VB6.0的产品...

2019-04-28 16:48:57 4185 7

原创 聊聊前端跨域的爱恨情仇

今天是过完春节以后的第二周啦,而我好像终于回到正常工作的状态了呢,因为突然间就对工作产生了厌倦的情绪,Bug就像无底洞一样吞噬着我的脑细胞。人类就像一颗螺丝钉一样被固定在整部社会机器上,除了要让自己看起来像个正常人一样,还要拼命地让所有人都像个正常人一样。过年刚经历过被催婚的我,面对全人类近乎标准的“幸福”定义,大概就是我此刻这种状态。其实,除了想自己定义“幸福”以外,我还想自己定义“问题”,因为...

2019-04-08 08:30:25 26813 7

原创 基于Server-Sent Events实现服务端消息推送

前段时间,为客户定制了一个类似看板的东西,用户可以通过看板了解任务的处理情况,通过APP扫面页面上的二维码就可以领取任务,而当任务被领取以后需要通知当前页面刷新。原本这是一个相对简单的需求,可是因为APP端和PC端是两个不同的Team在维护,换句话说,两个Team各自有一套自己的API接口,前端页面永远无法知道APP到底什么时候扫描了二维码,为此前端页面不得不通过轮询的方式去判断状态是否发生了变化...

2019-02-22 13:39:58 3234

2DToolKIit插件

用于Unity3D的2DToolKIit插件,可以帮助你快速开发2D游戏

2014-03-19

NGif动画编码/解码库

一个可以解码和编码GIF动画的类库,可以生成动画和解码动画,你值得拥有!

2014-03-07

PayneQin的留言板

发表于 2020-01-02 最后回复 2020-01-02

我还是觉得我这两篇文章的访问量有问题

发表于 2014-04-29 最后回复 2014-04-30

CSDN博客访问量统计是不是有问题啊?

发表于 2014-04-27 最后回复 2014-04-27

CSDN博客升级后出现Bug,望官方快速解决

发表于 2014-04-24 最后回复 2014-04-27

一个异常的问题,求助

发表于 2012-10-07 最后回复 2014-04-27

喜欢语音识别的童鞋们过来!

发表于 2014-01-06 最后回复 2014-01-08

ZBar条形码扫描

发表于 2013-12-24 最后回复 2014-01-06

空空如也

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

TA关注的人 TA的粉丝

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