HHR的小站
享受代码带来的快乐吧
首页

WordPress提供了很方便的CSS编辑器,可以为你的页面添加样式。
打开你的主题,进入“自定义CSS”,输入

html {
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    -webkit-filter: grayscale(100%);
}

即可让你的页面变成灰色

悼念逝者,致敬英雄

准备工作

  • IDEA 2019.3.4
  • JDK 7及以上版本
  • Tomcat 7及以上版本

Tomcat

官网下载Tomcat
img
解压或安装到一个目录(最好不含空格或中文的路径)
img
我们可以用bin/catalina.bat 或 bin/catalina.sh来开关Tomcat

# 开启
PS C:\dev\apache-tomcat-9.0.12\bin> .\catalina.bat start
Using CATALINA_BASE:   "C:\dev\apache-tomcat-9.0.12"
Using CATALINA_HOME:   "C:\dev\apache-tomcat-9.0.12"
Using CATALINA_TMPDIR: "C:\dev\apache-tomcat-9.0.12\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_131"
Using CLASSPATH:       "C:\dev\apache-tomcat-9.0.12\bin\bootstrap.jar;C:\dev\apache-tomcat-9.0.12\bin\tomcat-juli.jar"

# 关闭
PS C:\dev\apache-tomcat-9.0.12\bin> .\catalina.bat stop
Using CATALINA_BASE:   "C:\dev\apache-tomcat-9.0.12"
Using CATALINA_HOME:   "C:\dev\apache-tomcat-9.0.12"
Using CATALINA_TMPDIR: "C:\dev\apache-tomcat-9.0.12\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_131"
Using CLASSPATH:       "C:\dev\apache-tomcat-9.0.12\bin\bootstrap.jar;C:\dev\apache-tomcat-9.0.12\bin\tomcat-juli.jar"

我们可以看见Tomcat下有webapps目录,我们写的应用可以部署在这里

使用IDEA提高开发效率

打开IDEA我们可以看见下面的起始页面
点击Create New Project新建项目
img
进入Java Enterprice选择Web Application
img
输入项目名称和路径
img
新建项目完毕
img
到这一步我们就完成了项目的创建,接下来是部署和运行项目的环节
点击右上角的Add Configuration新增配置
img
点击左上角的+号并选择(Tomcat Server, Local)来新建一个本地的部署配置
img
因为是第一次配置,我们需要配置Tomcat目录,点击Application Server的Configure新增一个Tomcat目录
img
img
这里的URL是我们点击运行项目后IDEA自动打开浏览器URL,HTTP Port则是IDEA里的Tomcat需要监听的端口
img
img
点击右上角的绿色三角形可以运行应用,当看到下面的截图并跳出浏览器时,项目就运行成功了
img
当代码有更改时,如果要更新正在运行的项目,你仍然可以点击那个按钮,只不过现在它是一个半圆形的刷新箭头,当跳出Update 'example'框时,可以选择Redeploy来最快的应用更改
img
接下来是配置要部署的内容了,进入Deployment点击右侧的+号,点击Artifact...就可以生成一个默认的未压缩的可用于部署的应用,Application Context是应用的路径,这里我们设置为example,所以到时候可以通过 http://localhost:8080/example/ 访问应用
img
img

接下来是打包应用的步骤
项目右键点击Open Module Settings
img
我们看到这里已经有了之前创建的exploded_war,现在我们要新建以这个exploded_war打包的配置,点击+号
img
选择Web Application: Archive,For 'example:war exploded'就可以了,我们可以把Name改成example,这样生成的war文件的文件名就是example.war了
img
要编译新的应用是,只需要点击Build, Buile Artifacts...,点击Build或Rebuild就行了,example.war会出现在out文件夹中,把example.war文件放入Tomcat的webapps文件夹下,Tomcat默认会自动解压和部署,并且当文件夹下的example.war更新时,应用也会相应的更新
img
img
img

2020-02-21 |HHR | 杂谈

今日偶然在必应上搜索,竟然发现本网站已经被其收录

这效率,似乎甩了国内某搜索引擎一条街。

为什么那个莆田医院的推广者,它还不凉呢?

幸好还有bing,可以给我一个好用的搜索引擎

在微软的文档里,给出了一个在Linux上安装SQL Server的方法,在这里,我会取出其中一部分步骤进行讲解。

0.建议使用root用户进行后面的操作

sudo su

1. 导入公共存储库 GPG 密钥:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

2.为 SQL Server 2019 注册 Microsoft SQL Server Ubuntu 存储库:

add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list)"

在这一步时,可能会缺少必备的依赖,可以使用下面的代码安装依赖

apt-get update && apt install software-properties-common

3.运行以下命令以安装 SQL Server:

apt-get update && apt-get install -y mssql-server

4.包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。

/opt/mssql/bin/mssql-conf setup

首先选择版本,选 2) Developer (free, no production use rights)

接下来询问是否同意协议,输入“yes”

接下来设置SA密码,要求密码强度足够高(包括大写,小写,数字,符号中的至少三种)

到这里,SQL Server就安装完成了

5.完成配置后,验证服务是否正在运行:

systemctl status mssql-server --no-pager

如果看到这样的字样,说明安装顺利完成

6.安装SSMS工具,连接到数据库

在Windows电脑上安装SSMS,可以去微软官方的下载链接,或者去我的云盘下载。

安装完成后,就可以使用SSMS连接到SQL Server

输入服务器名称和密码,即可完成连接

7.开始愉快的使用你的数据库吧!

给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。

然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。
你需要计算完成所有任务所需要的最短时间

示例 1:

输入: tasks = ["A","A","A","B","B","B"], n = 2
输出: 8 
执行顺序: A -> B -> (待命) -> A -> B -> (待命) -> A -> B. 

注:

  1. 任务的总个数为 [1, 10000]。
  2. n 的取值范围为 [0, 100]。

#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;
struct numCD {
    int num;
    int cd = 0;
};

bool cmp(numCD &n1, numCD &n2) {
    return n1.num > n2.num;
}

class letter {
private:
    numCD num[26];
    int n, time;
public:
    letter(vector<char> &tasks, int n) {
        this->n = n + 1;
        time = tasks.size();
        for (auto &i : num) {
            i.num = 0;
        }
        for (char c:tasks) {
            num[c - 'A'].num++;
        }
        sort(num, num + 26, cmp);
    }

    bool get() {
        if (time == 0) return false;
        sort(num, num + 26, cmp);
        for (int x = 0; x <= 25; x++) {
            if (num[x].num == 0) {
                break;
            }
            if (!num[x].cd) {
                num[x].num--;
                num[x].cd = n;
                time--;
                break;
            }
        }
        for (int x = 0; x < 25; x++) {
            if (num[x].cd) {
                num[x].cd--;
            }
        }
        return true;
    }
};

class Solution {
public:
    int leastInterval(vector<char> &tasks, int n) {
        letter l(tasks, n);
        int ans = 0;
        while (l.get()) {
            ans++;
        }
        return ans;
    }
};

垃圾代码,别看了

https://leetcode-cn.com/problems/task-scheduler/