Home avatar

z2z63/Virtualfuture's Blog

dedicated in computer science

Idea配置java项目

IDEA更新后以前的项目不知道为什么不能直接运行了,新建项目后也不会自动创建运行配置了,为了解决这个问题踩了不少坑

Linux字体

之前安装archlinux,随便配置的中文字体,显示中文时总有一些奇奇怪怪的字形,最近翻了archlinux的文档,把字体配置搞清楚了

字体是什么

简单来说,字体告诉屏幕如何显示一个字,字体常见的格式有Bitmap和Outline,大致区别就是Bitmap直接指定了每一个像素,有点类似于字模,而Outline指定的是字的轮廓,至于具体怎么显示还需要根据屏幕分辨率,字号等信息来计算。很明显,Outline格式是更加现代的格式,所以此文就忽略Bitmap
Outline格式有以下几种格式

推荐系统简单介绍

这篇文章是wikipedia的recsys词条的翻译以及简化版本,原文见https://en.wikipedia.org/wiki/Recommender_system recsys(推荐系统)的种类

  • collaborative filtering(协同过滤)根据相似用户的行为为用户推荐内容,推荐理由是“与你相似的人都喜欢xx”, 缺点是需要大量用户行为数据,冷启动慢
  • content-based filtering(基于内容过滤)给物打上标签,推荐具有相似标签的物,推荐理由是“与你喜欢的xx有关”, 少量用户行为数据即可启动,但是只能推荐相似的物,无法推荐新物
  • knowledge-based systems

collaborative filtering

协同过滤的假定是

KDE折腾之自动化设置

需求

我有两个外置屏幕,一个1K 23.8英寸,一个1K 21英寸,同时内置屏幕在1K和2K之间(2240x1400)但只有13英寸,所以需要这个配置:

  • 内置屏幕:缩放比例150%,字体DPI 144
  • 外置屏幕1:缩放比例100%,字体DPI 96

然后残念的是KDE并不支持同时连接不同显示器并设置不同的缩放比例和分辨率,所以我采用的设置是

右值引用

C++11后引入了右值引用等特性,用来支持移动语义和完美转发,在了解右值引用前,需要了解一些前置的概念

  1. 左值(lvalue) 左值字面意义是在等号左边的值,左值是寻址的,具名的,有标识符的
    有一个特点是,所有声明的变量都是左值
  2. 右值(rvalue) 右值字面意义是在等号右边的值,右值不可寻址,不具名 具体而言:
    • 一个整数字面量是右值,因为它不对应一个内存存储位置,在汇编中,它存在于指令中的立即数字段
    • 一个临时对象是右值,临时对象是为了写连续的表达式而被编译器支持的,当有例如func(obj())时,首先建立一个obj对象,这个对象没有名字,它实际上有一个对于的内存存储位置,但在这行代码执行完后就会被销毁,所以它叫做临时对象

cpp对临时对象有一个限制,因为临时对象是马上就会被销毁的,所以对临时对象的修会被抛弃

MATLAB微积分

所谓数值求解,也就是无法获得解的方程,只能获得y(x)函数在x取值范围内的近似值 所有MATALB的DOE solver都可以解决形如$\frac{\mathrm{d}y}{\mathrm{d}t}=f(t,y)$的微分方程,所以很多时候需要把待求解微分方程化成这种形式,这种形式有几种特点