2022玩魔兽世界怀旧服的感悟

依稀记得那是高中的某个暑假,网易刚从九城手里接过魔兽世界的运营大旗,免费内测了两三个月。当时,人们称之为“万年TBC”。我开着朋友的账号,练了第一个号——血精灵圣骑士,取名Doraemon。从此,开启了十几年的山口山生涯。

继续阅读2022玩魔兽世界怀旧服的感悟

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

回顾2021,展望2022

昨天不小心被车门夹到大拇指,当时疼得撕心裂肺,像极了猫和老鼠里被整的Jerry。伴随着阵痛,大拇指可以感受到心跳的感觉,辗转反侧,彻夜难眠。索性起床,企图转移注意力来忽略真痛感,实际上似乎不怎么有效。嘶~

多久没有这么静静地冥想?上次好像还是2020年!点一柱香,播点音乐,原来世界还是属于自己。

世界真的属于自己吗?很明显,不是的。不然,为何这一整年都像无头苍蝇一样到处乱窜?

矛盾之中,总结过去矛盾的一年,憧憬未来美好的明天。

继续阅读回顾2021,展望2022

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

Netty入门

简介

在Netty官方网站中,有这么一段对Netty的概述:

Netty is an asynchronous event-driven network application framework
for rapid development of maintainable high performance protocol servers & clients.

Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.

'Quick and easy' doesn't mean that a resulting application will suffer from a maintainability or a performance issue. Netty has been designed carefully with the experiences earned from the implementation of a lot of protocols such as FTP, SMTP, HTTP, and various binary and text-based legacy protocols. As a result, Netty has succeeded to find a way to achieve ease of development, performance, stability, and flexibility without a compromise.

简言之,Netty是一款异步的,事件驱动的,网络应用程序框架,用于快速开发高可用的,高性能的网络协议服务器和客户端。Netty吸取了许多网络协议的开发经验,并基于Java NIO,经过精心设计,成功找到了一种方式保证易于开发的同时还确保了其应用的性能,稳定性和伸缩性。

继续阅读Netty入门

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

2020下半年问题总结

前言

光阴荏苒,2020年即将成为历史!许多人都把这一年形容为“多灾多难的”的一年,对我而言,或许是,也或许不是。一方面,今年似乎都没见过美丽的夕阳,忙与不忙都在变相加班。另一方面,今年个人KPI顺利完成,值得庆贺!在这即将跨年之际,为了迎接美好的明天,现将下半年工作中遇到的问题及其解决方案总结如下:

继续阅读2020下半年问题总结

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

Nginx入门

简介

以下是摘自官方的介绍:

Nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server.

Nginx是engine x的缩写,它是一款HTTP服务器,也是反向代理服务器,还能当邮件代理服务器,以及通用TCP/UDP代理服务器。 继续阅读Nginx入门

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

Redis入门

Redis的介绍

谈到Redis(Remote Dictionary Service),相信大家都看过一句介绍:

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

这里,我也是重新整理的时候才领悟到:

完全开源免费:可以研究或者改进Redis的源码。

key-value:重点操作就是get和set。 继续阅读Redis入门

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

Java实现国密Sm3算法

虽然国密算法SM3的官方文档只有短短四五页,但实现起来涉及的细节还是挺多的。特此,Milo将开发心得,以及源码和注解做个分享,希望读者能够轻松理解SM3。

  • 预备知识
    • Java基本数据类型大小byte:1个字节;short:2个字节;char:2个字节;int:4个字节;long:8个字节等等。十六进制:一个数代表4个二进制位。所以需要拿捏好数据长短。
    • Ascii码有区分十进制、八进制、十六进制。官方文档样例中使用的都是十六进制,“abc”=“616263”,而不是十进制Ascii码“979899”。计算和操作过程中,要留意数据类型转换的问题。
    • 左移和循环左移官方文档中提及的移位计算均为循环左移。即移出的高位放到该数的低位。
    • 左补0在转换数据类型时,除了关注溢出问题、Ascii码问题,还要关注转换结果的长度问题。SM3算法中,若二进制长度不足需要补全,否则拼接结果时会出现意想不到的错误。

继续阅读Java实现国密Sm3算法

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

2020上半年问题总结

前言

工作的时候,因为是内网开发,所以遇到难题Milo都记在纸上。原本想一月一发,事实上却因为各种缘由拖了大半年,一下子整理起来问题还真有点多。以下内容可以说是问题集锦,或者大杂烩了。

继续阅读2020上半年问题总结

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

Java实现常用排序算法

本文主要回顾了部分常用排序算法,包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,以及归并排序。

  • 稳定性和算法复杂度

稳定性:飞机插毛,即归并排序,基数排序,插入排序,冒泡排序是稳定的。
平均算法复杂度:快堆龟,即快速排序,堆排序,归并排序是nlogn。
参考blog,含gif演示,注意:该文章中的算法有误。

继续阅读Java实现常用排序算法

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。

导入FaceNet的一些坑

简介

FacenNet是谷歌提出的一种新的人脸识别的方法,该方法在LFW数据集上的准确度已经达到了99.65%。

FaceNet论文

FaceNet实现

正文

上个周末,Milo在FaceNet的导入上踩了整整两天的坑,包括开发环境,源代码报错,运行异常等等。希望本文的粗糙填坑可以帮助到更多和Milo一样的人工智障爱好者和初学者。

继续阅读导入FaceNet的一些坑

本博客文章为原创内容,版权归作者所有。未经作者书面许可,不得擅自转载。如需转载,请注明原文链接和作者信息。违者将追究法律责任。