枚举类型作为与接口、类同一级别的存在,自然有它独特的用途。至于它性能上的优势暂且不谈,我们在这篇文章中只是考虑怎么把Enum写得更优雅
Java
Enum的写法
在阿里实习的时候印象最深的就是学到了枚举的写法, 大致如下所示
123456789101112131415161718192021222324252627282930313233343536373839404142public enum EnumOperationPermission implements IEnumBehaviour { // ----------------------- 实际的枚举对象 ...
要学习设计模式,首先绕不开的就是UML图,同时对于一名开发而言,开发文档中也必然会出现UML的身影。之前在实习的时候,其实已经学过不少了,但不用后又很容易忘记,(在阿里实习的时候就以为记得很熟了,结果现在又忘了)——因此这也是一个防忘系列
UML
UML(Unified Modeling Language)是一种标准的图形化建模语言,是一种为面对对象系统的产品进行说明、可视化、编制文档的标准语言,它是面向对象分析与设计的一种标准表示。
(1)UML是一种语言。
从上面的定义可以看出,就其本质,UML是一种语言,既然是语言,那就是用来交流的,UML用来在哪些人员之间进行交流呢?很明显, ...
JWT: Json Web Token
与普通Token一样都是访问资源的令牌,都可以记录用户信息,都是只有验证成功后才可以获取信息。
不同的是普通Token,服务端验证token信息时要进行数据库查询操作;JWT验证token信息就不用,在服务端使用密钥校验就可以,不用经过数据库查询。==》它是一个数字签名
JWT信息组成
JSON Web Token由三部分组成,它们之间用圆点(.)连接。这三部分分别是:
Header
Header header典型的由两部分组成:token的类型(“JWT”)和算法名称(比如:HMAC SHA256或者RSA等等)。
Payloa ...
chrome插件开发
借鉴TODO-List:Chrome插件开发简要指南
文件结构
在应用商店中下载下来的插件基本上都是以.crx为文件后缀,该文件其实就是一个压缩包(文件夹压缩而来),包括插件所需要的html、css、javascript、图片资源等等文件。
其中,
manifest.json是整个插件的功能及文件配置清单,非常重要。
static目录是放置整个插件的静态资源文件的,包括css、js、图片等等资源
template目录是放置整个插件的功能页面模板的。
_locales目录是放置整个插件的国际化语言脚本的。
一般来说,清单文件manifest.json文件是必须的 ...
在课程设计实验周里总共读了3本书, 《深度学习算法实践》、《深度学习框架PyTorch快速开发与实战》、《PyTorch深度学习入门》。 其中《深度学习算法实践》、《深度学习框架PyTorch快速开发与实战》比较失望,质量比较差;《PyTorch深度学习入门》的代码质量高一点,但需要理论辅助,由于事先看了李宏毅老师的深度学习,因此还算容易入手。
《深度学习框架PyTorch快速开发与实战》
网上关于《深度学习框架PyTorch快速开发与实战》的评价:
关于作者
作者一共三个,在封面内侧有简单的介绍, 三个作者的简绍里没有“深度学习”相关的内容(请注意书名).单从这本书的作者介绍来说 ...
Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能(如下图),对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro 要简单的多。
Shiro 的架构
从外部来看应该具有非常简单易于使用的 API,且 API 契约明确;从内部来看的话,其应该有一个可扩展的架构,即非常容易插入用户自定义实现,
交互流程如下:
应用代码直接交互的对象是 Subject,也就是说 Shiro 的对外 API 核心就是 Subject。
Subject:主体,代表了当前 “用户”,这个用户不一定是一个具体的人,与 ...
首先开始的便是文档定义:
12345\documentclass[bachelor]{njupthesis}% \documentclass[option]{class}% class有article, proc, minimal, book, slides% option: a4paper(纸张大小)、10pt(字体大小)、fleqn(行间公式对齐方式)、leqno(行间公式的编号对齐方式)、onecolumn(单栏)、titlepage(文档标题后另起一页)\end{document}
查看: https://blog.csdn. ...
动态规划DP
一般算法面试题解决最优化问题,有两种解决途径:暴力枚举、或者DP,由于其灵活和高效,无数程序员为它着迷,大厂面试也是必考。
但是,动态规划形式上非常多变,本质上没有套路,问题不同,动态规划的迭代方程就不同。而有些问题,对于计算机科学家,都难以找到迭代方程。因此,对于平平常常的我们,刷算法题时想不出动态规划的解法,也大可不必气馁。
DP组成——三个条件
某个问题是否能应用动态规划,通常需要满足 3 个条件:
具有最优子结构
具有无后续性
具有重复子问题
最优子结构性质:只需求得子问题的最优解后,原问题的最优解最能推导出来,这表明此问题具备最优子结构性质!
**后续状态无 ...
P3Regression - Case Study
regularization解决overfitting(L2正则化解决过拟合问题)
regularization可以使曲线变得更加smooth,training data上的error变大,但是 testing data上的error变小。有关regularization的具体原理说明详见下一部分
原来的loss function只考虑了prediction的error,即$$\sum_{i}{n}\left(\hat{y}{i}-\left(b+\sum_{j} w_{j} x_{j}\right)\right)^{2}$$;而r ...
homework for ZJU: https://mo.zju.edu.cn/homework/zju_ai_2020_ss
1. 实验介绍
1.1 实验背景
自今年 7 月 1 日起,上海市将正式实施 《上海市生活垃圾管理条例》。
垃圾分类,看似是微不足道的“小事”,实则关系到13亿多人生活环境的改善,理应大力提倡。
垃圾识别分类数据集中包括玻璃 (glass) 、硬纸板 (cardboard) 、金属 (metal) 、纸 (paper) 、塑料 (plastic) 、一般垃圾 (trash) ,共6个类别。
生活垃圾由于种类繁多,具体分类缺乏统一标准,大多人在实际操作时会“选择 ...
习题3 - 图像恢复
3.1 实验内容
图像是一种非常常见的信息载体,但是在图像的获取、传输、存储的过程中可能由于各种原因使得图像受到噪声的影响——称为图像退化。图像复原就是重建退化的图像,使其最大限度恢复景物原貌的处理。如何去除噪声的影响,恢复图像原本的信息是计算机视觉中的重要研究问题。
常见的图像恢复算法有基于空间域的中值滤波、基于小波域的小波去噪、基于偏微分方程的非线性扩散滤波等,在本次实验中,📌我们要对图像添加噪声,并对添加噪声的图像进行基于模型的去噪。
3.2 实验要求
A. 生成受损图像。
a) 受损图像是由原始图像添加了不同噪声遮罩(noise masks)得到的。
b ...
虽然还没正式踏入开发就业浪潮中,但为了保证自己的代码质量,最近还是在学设计模式相关内容。以下为读《研磨设计模式》和《设计模式就该这样学:基于经典框架源码和真实业务场景》的读书笔记。
GoF的《设计模式》就是设计模式的始祖、经典教科书。其描述严谨,举例恰当,分类组织,是应该反复细读的经典,两本书皆提及了GoF这本书,引用了GoF中的部分例子。
单例模式
虚拟场景:
读取配置文件的内容(假设系统采用的是properties格式的配置文件)
1234567891011121314151617181920212223242526272829303132333435363738394041424 ...
《研磨设计模式》和《设计模式就该这样学:基于经典框架源码和真实业务场景》的读书笔记
设计模式是什么?
模式:从字面上理解,模,就是模型、模板的意思;式,就是方式、方法的意思。综合起来,所谓模式就是:可以作为模型或模板的方式或方法。再简单点说就是可以用来作为样板的方式或方法,类似于大家所熟悉的范例。
所以设计模式就是设计方面的模板,具体定义为:是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。
每个设计模式的构成如下:
1、模式名称:模式的一个好记的名字
2、环境和问题:描述在什么环境下,出现什么特定的问题
3、解决方案:描述如何解决问题
4、效果:描述 ...
something about Othello
黑白棋规则
传统的黑白棋棋盘由 8 x 8 方格组成。开局时,棋盘中央的4格先置黑白相间的4颗棋子 (详见下图),并由黑子先行。
首步由黑子先下;下子时;新子必须与棋盘上任一己方棋子形成一条或多条 (横、竖、斜) 直线,并夹着对方棋子;由新子及旧子连成的直线之间,必须存有一颗或以上对方的棋子。如图,黑子开局时之可行棋步有以下4格:
双方交替下子;倘若任何一方没有棋步可行,则其必须将下子权利相认予对手;另在双方均无子可下的情况下,游戏自动结束。
游戏结束后,拥子较多一方为胜;倘若双方棋数相同的,则为和局。
黑白棋基本策略
占角子及固定子
...
😄理解numpy中array和pytorch中tensor的操作是开始科学运算的第一步!
首先明白维度的感念:
维度
我们通常能听到的都是2D, 3D,其实这边的D就是dimension的含义即维度。2D,我们通常理解为是平面,如我们最熟悉的直角坐标系就是平面坐标系,还有极坐标系。而3D呢,就是在平面的基础上增加了一维——高度,从而使平面的物体立起来了,同样3D也有耳熟能详的坐标系——3维坐标系。
更官方的解释呢:维度(Dimension),又称为维数,是数学中独立参数的数目。在物理学和哲学的领域内,指独立的时空坐标的数目。0维是一个无限小的点,没有长度。1维是一条无限长的线,只有长度 ...
由于在研究如何优化网盘直链下载助手**baidupan,如何将直链的结果提取出来供IDM批量下载。由于baidupan**是用油猴脚本写的,因此借机学习一下。
Greasy Fork
这里是一个提供用户脚本的网站。
Tampermonkey
其为浏览器插件,目前主流浏览器皆支持,油猴叫法来源:「油猴」是从「Greasemonkey」来的。「Greasemonkey」最初是运行在Firefox浏览器中的脚本,「Tampermonkey」在Google Chrome浏览器上实现了几乎相同的功能,所以也被中文用户称之为「油猴」。
新建:
12345678910111213141 ...
终于12月了,又是一个月初,定个flag,pr一个Gitcode
由于之前写Python爬虫的时候,从curlconverter受惠很多,并且看到issue #22: Add generator for Java中有Java版本的需求还未完成,所以目标就是完成JAVA for curl
curlconverter提供了一个网页版: https://curl.trillworks.com/, 其实其本质上也是用js完成的,功能如README中所写:
README
Install
1$ npm install --save curlconverter
Usage
123var curlc ...
《漫画机器学习入门》总结
机器学习是指计算机通过不断地处理数据并修正算法和参数来学习各种规则, 从而不断改进模型而得到更优化的算法。书中主要讲解了玻尔兹曼机的机器学习
谁是世界上最美丽的人?
****特征量****就是如每一个人的年龄,眼睛大小; 特征向量就是每个人的特征量放到一起,特征向量是表达特征的一个数组
误差函数: 在美丽程度这个问题上, 误差函数就是—— 计算“美丽程度”的实际输出与给定的理想输出之间的差值
最优化问题: 最小化误差函数,其实是一个求解最优化问题:我们的任务就是要找到没有误差或者误差小到满足要求的最适合的模型。这就要通过调节模型中的参数,使误差函数值 ...
因为今天在集群193跑程序的时候发现时间不同步, 因此想想把集群的时间全部同步一下
在Linux中设置系统时间,可以用date命令:
1234# 查看时间$ date# 修改时间$ date -s "20140225 20:16:00" #yyyymmdd hh:mm:ss
Linux硬件时间的设置
硬件时间的设置,可以用hwclock或者clock命令。两者基本相同,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。
系统时间和硬件时间的同步
同步系统时间和硬件时间,可以使用hwclock命令。
4. 不同机器之间的时间同步
为了 ...
之前搭建的JupyterLab逐渐被使用起来了, 单用户的模式还是不太方便, 因此准备用JupyterHub来做下用户隔离
1. 安装nodejs和npm
按照JupyterLab官方教程, 先是安装最新的nodejs和npm, 但是由于16.04的apt源安装的nodejs版本比较久, 因此在后面的安装中会有坑, 这边根据网上的教程手动安装最新的nodejs
12$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -$ sudo apt-get install -y nodejs
安装成功后输入node --v ...