❗️你有0条未读消息

人生护城河

人到中年,危机感也愈来愈重,有很多的困惑找不到答案,于是身心都很困苦,现在才稍有理解佛家说“众生皆苦”。辉哥的这本书多少有点启发,是一本值的二读的书。

算法图解

最近在研究算法,有些年头不搞忘的七七八八了,脉脉上听人推荐了这本书,说是算法入门,没想到也太入门了点。。。与我没啥收货浪费几十块钱。本来应该看电子书的,想到搞算法这么严肃认真的事情还是应该买本实体书的,大意了轻信了网友的推荐

如何获得真正的财富

书名很好,书很一般吧。前面的章节还能学到点经济学知识,写的也还算有点话题,到了后面就是想到哪写到哪了,基本就是作者的分答、论坛、星球之类的问题回答了吧,没啥系统。这类书看看拓展点视野是可以的,观点正确与否还是要有个人的判断的。

聪明人是怎样用钱赚钱的

前半部分一些理论知识还是有所启发的,后面的没啥用处。理财类的书基本上应该就这样了,看不到什么新的内容了。后面就是践行了应该不再会看类似的书了。

很简洁的一本小册子,介绍了TED PPT设计的原则。然而我还是那个,”懂得很多原则,却依然做不好PPT”的人。。。

一本读起来很轻松的阅读建议手册,能吸取一些很好的建议,比如如何选书,如何衡量一本书对于自己的价值,如何使用逻辑、情境等方式阅读等。还是那句话,道理都懂,受过高等教育的人应该不至于不会读书,现如今制约我们长时间阅读的主要是分散的注意力,一方面是移动互联网的便捷,一方面是一颗焦虑而不安的心,导致读书远没有上学时那样聚焦和纯粹,现在有限的自由时间里分配来阅读就没办法分配其他事情,于是基本上阅读都是抱着很强的功利心。而且一旦这样就会觉得这本书也不想看那本书也不想看,然后时间就这么蹉跎了。。还是本书的观点之一,不管怎样先看起来,每天都坚持就好。

像《隐秘的角落》一样,哈珀李在这本书里从吉姆的胳膊伤为引子,讲述了那年夏天几个少年的经历。童年的夏天总是漫长的,足够多的经历足够多的成长。主线故事怪人拉德利,汤姆的冤案,批判了种族歧视和偏见的人性丑恶,同时给我们展示了一个完美的父亲形象,在子女教育上也有所启发。算是一本温暖的好书。

背景

上一篇手写了TomCat框架,基本上弄明白了Servlet的核心原理。这一篇里通过手写SpringMVC框架来了解一下我们日常开发中离不开的SpringMVC的基本原理。
我们从上一篇的TomCat框架出发,本篇手写的框架利用上一篇里手写的TomCat框架启动,为了能跟SpringMVC结合使用,上一篇里的TomCat需要进行一些修改适配,如去除xml配置,初始化增加bean实例化操作等。

框架概述

作为一个SpringMVC框架,我们需要提供哪些功能?
首先,我们需要提供一些注解,供配置、注入依赖、标识web接口等;
其次,我们需要提供IOC/DI的功能,以便能够反转依赖;
再者,我们需要能够根据url寻址到合适的JavaBean运行服务

阅读全文 »

背景

TomCat是我们Java Web程序员每天都要打交道的东西,但很多应用框架的存在让我们感觉不到它的存在,”动动手配置下”,框架就帮我们把一切封装好了。
框架的使用极大地方便了我们开发,但仅仅停留在会用阶段还是不够的,做一个”API调用工程师”技术的天花板太低了,这篇博客就记录一下我在学习TomCat工作原理后手写的一个简单的demo框架。

思路

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.
引用一句Tomcat官网上的话,Tomcat其实就是一个Servlet的开源实现,因此手写Tomcat也就是手写实现一个Servlet。

写之前我们理一下思路,我们的Tomcat要满足哪些需求?

首先,作为web服务,最基本的,我们请求某个URL路径后,服务要返回相应的输出内容。

要实现这个需求,我们需要利用Socket提供网络服务,其次要有请求分发的能力,将不同的请求分发到不同的服务进行处理。这在我们使用Servlet的时候通常是要配置web.xml。

作为一个框架,要有能将类实例化的能力,最终提供web服务的必然是各个不同服务的Servlet实例。

阅读全文 »

程序员的自我修养

随便翻翻,前人的经验总结,有一些可参考之处。比如,程序员如何提高自己的软实力,加强沟通和文档写作能力;工作技能并不是生活的全部。

废都

这是一本学生时代就闻名的书,2019年的年末在偶尔刷网易新闻的某条评论时被人提及,于是想起来要拜读一下当年没有机会看的这本”注定要载入史册”的小说。网上搜寻一番找了所谓未删减版,也不知道是不是我的文学鉴赏能力在毕业后就损耗了,老实说我并不觉得废都有多好,好到足以”载入史册”,难道是要以在那个相对保守的年代大胆露骨的性描写来载入史册吗?实话说那些工口描写确实震撼,但小说里的庄之蝶何德何能让那么多的如花美眷投怀送抱趋之若鹜呢?水浒传里王婆说,男人吸引女人无外乎”潘驴邓小闲”,庄之蝶沾哪一点呢?一个作家写文好就能三妻四妾怎么看都像是作家本人的YY,若是因为名作家的光环和经济条件,那跟书中渲染的灵与肉结合的真爱怕是又有违。况且,一个时刻跟官场打交道,为政府写文,写农药厂写广告的作家算是什么样的作家呢?也许废都我着实没看明白。

代码整洁之道

不是我想象中的讲述代码如何写才可以整洁的书,这本书更是一本过来人讲述职业生涯经验的书。从中可以看到大佬也是跌跌撞撞成长起来的,作者告诉我们如何做才算是一个专业的程序员。部分可以借鉴,但整体收获不算大。

漫画算法:小灰的算法之旅

很棒的一本算法入门书,风趣简明。粗读了一遍,需要多读几遍并动手实现一下。

地球大炮

神奇的想象力!我们几乎小时候都想过穿越地球到达另一半地球的事情,想过后就觉得荒诞完全不可行,这就是普通人;不但将凿穿地球可行化还利用地球通道将通道变成加速人的巨大炮管进行肉身宇航,这™就是科幻作家!

风起陇西

亲王早期的长篇作品,看的出来文笔还有些青涩。亲王在三国历史背景下构建的一个的谍战故事,故事还算不错,剧情也挺吸引人。亲王根据李彦的生平,重新解构了李彦和诸葛丞相之间的一段历史,于故纸堆里寻新意,这是亲王的历史小说一贯引人的地方。故事架构也跟后面的《古董局中局》类似,局中设局,出人意表。

赡养人类

大刘一如既往的散发人性关怀,悲天悯人的科幻作品。建立在”如果任由资本扩张积累”的前提下,合理丰富的想象,后续的人类社会可能出现的情景就是”一个终产者20亿的无产者”的悲惨局面。跟尤瓦尔赫拉里在《人类简史》里预测的那样,随着科技的发展,终究有一天”超人”诞生,智人灭亡,然而我们无可奈何。科技的发展是一只离弦之箭,人性的本性也决定了既得利益者不会主动放弃利益,当未来社会真的如这些科幻作家们描述的那样时,被压迫者真的连反抗都没有能力了。

纤维

很简短的短篇故事,十几分钟就看完了,一个多重宇宙下的故事。故事本身倒是没有给我留下太多深刻的印象,除了那句”你们怎么能体会到两人手拉手在海边上,1月、2月、3月(地球的三个卫星)给你们在沙滩上投下六个影子的浪漫”,还有评论里那句,”纪念品。留下我带不走的,带走我能带走的。证明这里有我曾来过。你的心里,有过纪念我的物品吗?”。都是有故事的人啊。。

乡村教师

大刘一如既往的人文关怀,科幻外衣下的歌颂人民教师的短篇,值得一读。我在想,如果大牛去写一篇农村题材的长篇,会不会也会很成功。

Effective Java中文版(第三版)

如何写优雅代码?Java程序猿进阶必备

流浪地球

过年期间在一片超高预期的贺岁片中选择了看《流浪地球》,给我的观影感受跟那年看《钢铁侠3》似的,”特效没的说,绝对的震撼,但剧情真的让我不那么感兴趣”。我原本是冲着宣传的硬核科幻去看的,不指望能有《三体》中智子、黑暗森林理论、二向箔、降维打击等如此硬核的概念和设想让人震撼,但也没料想所谓的硬核科幻基本上就是行星发动机及木星引力突变科普了一波洛希极限了。不谈逻辑上的硬伤,但在人类甚至地球生存存亡之际靠一个小女孩强行煽情推动剧情真的看的人尴尬,私以为这部片的两个小孩真的是败笔。扯远了,于是乎找来了大刘的流浪地球原著想看看改编到底有多大,结果什么小男孩小女孩,木星撕碎地球压根没有的事,想来也是,连木星这关都过不去,还扯什么流浪2500年,这不闹着玩吗?大刘这本书里基本上跟电影没有多少关系,书里的主角似乎连个名字都没有,主要描写了主角在即将地球流浪之际的世界见闻,也思考了在末日之际人类的亲情、爱情之类人性可能的变化,甚至有联合政府的坚守和叛军的反叛等等,故事没电影那么戏剧,但逻辑依然在线依然硬核。

设计模式之禅(第二版)

系统性的学习了一遍设计模式,这本书写的还是比较通俗易懂的,语言比较风趣幽默

做自己人生的CEO

被逼成啥样了,我都开始看成功学了。。我一向排斥类似书籍的一个原因在于,这类书的行文风格无一例外都是说一个论点然后举一个例子,貌似是有理论有案例的样子。但问题在于举的例子很难让人有代入感,仿佛是现编出来的一样,屁股决定脑袋,为了说明论点而举的例子。话虽这么说,这本书讲的还是有一些可取之处的。去年开始深刻地意识到技术之外的职场能力非常欠缺,后续还是要有意识的学习。

本来这一篇只是单纯的2018年终总结,在农历新年的最后一个工作日(2018.2.1)已经开始动笔写了。当时归心似箭,已经无心工作、学习,工位上也是稀稀落落的几个同事漫不经心的样子。准备写完总结就下班回家了,不巧的是我是直接在博客的搬瓦工虚拟机线上环境直接写的,写了大半的时候帮同事处理了个问题,回来的时候发现机器ssh已经掉线了,而我在虚拟机上的vimrc设置又关闭了文件备份,真的是瞬间心情就不好了。。。果断将手贱配置的关闭文件备份去除,但也已经无心继续了。于是一份18年年终总结就被这样拖成了年终总结&开工寄语了。

闲言少叙,之前憋了半天的感慨也不复述了,直接对2018年初设立的目标做个简单的回顾,再给新的一年立几个flag,这篇就算如此了吧。

阅读全文 »

背景

通常我们在Controller层接收前端传递的复杂参数时,都会封装一个请求参数类,然后将前端传递过来的参数解析成该请求对象。
这次我遇到的场景,前端传递的参数结构比较复杂,但只有三个字段,其中一个字段又是一个复杂结构,类似这样的结构:

1
2
3
4
5
6
7
8
9
id: xxx;
name: xxx;
data: {
id: xxx,
parentId: xxx,
item1: xxx,
item2: xxx,
......
}

其中的data部分数据结构类已经在其他应用中定义,通过二方包的形式引入,为了省事,不想再在外部定义一个只有”id,name,data”三个字段的请求参数类,于是就在Controoler方法内部定义了一个内部类,供方法自己使用。
然后问题就来了,在参数解析的时候报错:

1
Exception in thread "main" com.alibaba.fastjson.JSONException: create instance error, xxxxx


阅读全文 »

首先说点题外话,今年本来立了个flag,每周写一篇博客,结果写到第18篇就一直停更到现在了,脸都被打肿了。。。
flag实在是不能立啊。今年上半年忙成狗,还没有拿到好的结果,世事难料啊~唯成长不能停息,下半年博客还是要继续写起来,想分享想记录的还是有很多话题,要克服自己的惰性,虽然下半年还有装修的事要忙,也不要给自己立flag了,尽力克服惰性多分享一些多记录一些吧。

目前HTTPS渐渐普及,Chrome还把http服务的网站标记为不安全。之前把藏经阁升级成了HTTPS,博客呢一直没有弄,有一些外部依赖需要整,不像藏经阁单页应用基本无外部依赖,就搞个证书升级下就好了那么简单。今天抽空把博客也升级成了HTTPS,这里就从头做个简单的总结分享下吧。

一. 申请HTTPS证书

HTTPS为什么能保证信息传输的安全性的理论知识我就不多介绍了,简单说一下,如果要提供HTTPS证书,必不可少的是CA证书。证书就像一个权威机构,你接入了就可以保证数据传输的安全性,因为https协议需要加密传输,加解密的过程需要证书授权。
关键地,一个HTTPS证书通常价格不菲,针对个人站点一般都无法承受。好在阿里云提供针对个人单域名的免费证书服务,貌似腾讯云也有类似服务,这里以阿里云的为例介绍。

  1. 购买证书
    从上面链接进入阿里云证书服务,点击购买证书,选择赛门铁克的免费型证书,如图所示

  2. 补全域名信息
    购买成功后返回证书控制台,点击补全补全域名信息
    这里需要注意的是,阿里云会校验你填写的域名是否真的为你所有,需要你去域名解析处增加一条TXT解析记录,指向所要求的值,按照控制台给出的值进行操作即可

  3. 签发完成
    信息补全后系统会自动检测,满足要求后会自动签发,这个过程还是比较快的。通常添加了解析记录后很快就能收到签发短信。
    在控制台里可以看到已签发的证书。

阅读全文 »

18/53,每周一篇博,坚持!

今天七月一号了,不知不觉2018年又已经过去了一半了,工作后压力大感觉时间都过的快了些。想来也是,上了年纪了,现在的一年占你所剩人生的比例越来越重了,不由得让人对时间的流逝关注起来。大家都加油,与诸君共勉。

这一篇博文是小而美的库分享第三篇,准备分享一个SVG图标的库,名字叫做Vivid.js

关于Vivid.js

现如今,我们在web开发过程中,需要用到图标的时候已经很少直接插入一张图片了,更多的时候使用的都是SVG、iconfont形式的图标了。这种图标的好处就是可以自定义大小、颜色等样式。
这其中,国内有阿里开源的阿里巴巴矢量图标库,也有bootstrap之类好用的图标库。
Vivid.js也是一款优秀的矢量图标库,可以作为备选之一。

阅读全文 »

17/53,每周一篇博,坚持!

这一篇博文是小而美的库分享第二篇,准备分享一个JS键盘事件捕获的库,名字就叫做KeyPress

关于KeyPress

我们在web开发过程中,为了给用户带来良好的用户体验,通常就不仅仅需要响应用户的鼠标操作,更多的是需要响应用户的键盘操作。通常这时候我们总是需要各种搜索查询键盘上各个按键对应的键码。
这是一个很繁琐而又没什么技术含量的事。而”KeyPress”这个库基本上就让我们摆脱了查询键码的繁琐过程,托管了我们对键盘映射的响应。
“非常容易使用,大小合理(9kb),没有任何依赖,健壮性良好的键盘输入捕获JS库”,这是KeyPress的自我评价。

阅读全文 »

16/53,每周一篇博,坚持!

(翻译自Github blog)

我很高兴地宣布,微软正在谋求收购Github并且有望在今年年底完成收购协议。虽然最终达成收购还需要几个月的时间,但我们想尽快分享这个消息给大家。

当十年前刚建立Github的时候,我从未想到过这个“标题”。Git是一个强大且优秀的工具(原文niche疑为nice笔误),“云”只是天上的东西,而微软则是一个非常不同的公司。人们谈论到开源和商业的时候,仿佛它们是水火不容的两件事。

阅读全文 »