0%

2021年03月02日

安装PostgerSQL

1
docker run -d -p 5432:5432 --name=psql -e POSTRES_PASSWORD=123456 postgres

创建数据库harryblog

1
2
docker exec -it psql /bin/bash   #进入数据库容器
su postgres #切换用户为postgres

在PostgreSQL中,管理员用户为 postgres

1
2
createdb harryblog #创建Harryblog数据库
psql -l #显示所有的数据库,显示如下图

image-20210302113352439

删除数据库

1
2
dropdb harryblog
psql -l

image-20210302113845613

进入数据库

1
2
psql harryblog
select version(); #查看postgreSQL版本

image-20210302113557741

操作数据表

1. 创建数据库

1
2
3
4
psql harryblog
create table posts (title varchar(255),content text);
\dt -- \dt 为查看表列表信息
\d

image-20210302133608594

1
\d posts  #查看表详细信息(非列表)

image-20210302134024092

导入SQL文件使用 \i

C# 反射

C# 通过反射可以动态加载DLL使用,大大提高灵活性。

实践

  1. 预先建立一个类库,在内部写一个cat类,然后重新生成项目
  2. 新建一个控制台程序,将类库生成的DLL复制到控制台程序的bin/debug目录。

代码如下:

Hello类库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;

namespace hello
{
public class cat
{
public cat()
{
Console.WriteLine("初始化Cat");
}

public void miaomiao()
{
Console.WriteLine("喵喵叫");
}
}
}

控制台程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Reflection;

namespace Learn_more
{
class Program
{
static void Main(string[] args)
{
Assembly assembly = Assembly.Load("hello");
Type type = assembly.GetType("hello.cat");
Object OHello = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("miaomiao");
methodInfo.Invoke(OHello, null);
}
}
}

前言

本周给电脑(黑苹果)更新10.15,但是显示器使用的三星C49HG90DMC带鱼屏,分辨率(3840x1080)。一开始不会调分辨率,被我搞得重装了系统,然后记录一下调分辨率的过程,备忘。

开始

  1. 关闭SIP。白苹果(重启恢复模式,输入csrutil disable),黑苹果(Clover配置文件,RT Variables设置状态参数0x67
  2. 安装SwitchResX
  3. 点击设置面板中的SwitchResX,选择左侧列表中的最后一个,自己的显示器型号,我这边显示C49HG9X
  4. 点击Custum Resolutions,开始自定义分辨率。
  5. 点击左下角+,添加自定义分辨率。
  6. 选择Custom resolution,勾选Use simpllified setting,选择CVT-RB
  7. 在下面的ActiveHorizontal,设置3840,ActiveVertical,设置1080。(这里就是设置我们想要的分辨率)。
  8. Scan rateVertical中设置屏幕刷新率。
  9. 接着按Tab键在这几个输入框中切换,会自动调整剩余参数。

如果设置的显示器最佳分辨率,但是保存重启后变成了Not install的提示,请调低屏幕刷新率,再试。

参考

  1. 设置分辨率一键脚本
  2. SwitchResX设置教程
  3. 参考自远景论坛帖子

其中gitee可以使用其他代码管理系统替代。

前言:

前几个开始做起专职的前端开发。虽然已经写了1年多的Vue.js,但对于发布、展示,不停的npm run build亦或是Yarn run build,然后等待构建项目,在通过MobaXterm拖到服务器上。还是比较反感,心心念念的解决方案DevOps,于是有了这篇文章。

准备工作

准备环境

  1. Gitee账号注册。
  2. 本地安装Docker
  3. 安装Jenkins(必须先安装完Docker)。
     #创建Jenkins工作目录
     sudo mkdir jenkins/data/ -p   
     #创建Jenkins容器
     docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /opt/jenkins/data:/var/jenkins_home -d --restart=always  jenkins/jenkins
     #查看Jenkins初始化密钥(密钥会打印在日志里)
     docker logs myjenkins -f
     #找到密钥后填入(打开浏览器:8080)然后终端的日志就可以按`Ctrl + C`了。
     
    
  4. 公网IP(花生壳可以解决这个问题,免费版可以内网穿透,数量有限制)。

开始

  1. 使用vue-cli创建一个项目(我这里使用UniApp的模板,创建下来是一个UniApp的实例项目)。
  2. 加入Git版本控制。
  3. Gitee推送。
  4. 进入Gitee上面的项目设置里面,进入WebHook选项。
  5. 进入<ip>:8080进入Jenkins管理页面。新增安装以下几个插件。
    1. Publish Over SSH
    2. Docker Plugin
    3. Gitee插件
    4. NodeJs
  6. 进入系统管理=>系统设置,配置以下项:
    1. Gitee标签项
    2. Publish over SSH标签项
    3. 云=>Docker(配置时需要开启Docker Tcp 访问控制)
      1. Docker Host URI,填写Docker Tcp访问控制地址。
  7. Jenkins中新建任务。选择自由构建风格。
    1. 源码管理:输入Gitee仓库。
    2. 构建触发器:Gitee webhook 触发构建。其中:Gitee WebHook 密码,点击生成,然后填回步骤4中的WebHook页面,触发地址,填写外网可以访问的地址:如http://花生壳域名/project/uniapp_hello
    3. 构建环境选择NodeJs
    4. 构建:
      1. 选择执行Shell=>输入构建命令:
         npm -v
         pwd
         npm install
         npm run build:h5
         
        
      2. 构建Docker镜像:
        1. Cloud选择上面创建的构建服务器。
        2. image:输入构建的镜像名称,如需要推送私有仓库,请按照一定规则填写此部分。
        3. 勾选Push image
    5. 构建后操作:
      1. Send build artifacts over SSH:选择添加的Server
      2. SourceFiles:*
      3. Exec command:
         docker rmi 192.168.1.1:9090/hello-uni-web:latest -f
         docker rm hellouni -f
         docker run -d -p 10088:80 --name=hellouni --rm 192.168.1.1:9090/hello-uni-web:latest
         
        

测试构建

  1. 编写Dockerfile然后推送至GiteeDockerfile内容:
     FROM httpd:2.4
     COPY dist/build/h5 /usr/local/apache2/htdocs/
     EXPOSE 80
     
    
  2. 等待构建
  3. 查看构建日志,并访问部署地址。

参考

  1. Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
  2. Gitee Jenkins Plugin
  3. Docker打开TCP管理端口

前言

在家想改个Bug,然后公司外网没有部署服务器,仅有一个内网的服务器,程序需要连上内网的服务器进行联调。再多次尝试下有了此文。

准备工作

  1. 将公司的电脑开机(PS:走的时候没关)
  2. 公司的电脑上安装TeamView软件
  3. 家里的电脑安装TeamView软件

Start

  1. 登录自己的TeamView账户
  2. 打开远程电脑的授权轻松访问(仅公司端)
  3. 安装VPN驱动(两端电脑均需要)
  4. 再远程计算机配置端口转发(为了尽可能的简单方便,我找了一个别人写的小工具),工具下载后使用右键以管理员身份运行,下面是程序打开的样子。
  5. 点击标签卡映射列表,删除已存在的所有条目。
  6. 配置原Socket,填写TeamView给我们的ip地址(如:7.200.200.2)加上你想定义的端口(任意),欲映射Socket列表填写想要转发给局域网的机器的请求地址,如:我司局域网内部署端口为8080,则填写192.168.200.140:8080。(其他服务也按此方法配置,配置后点击保存,然后重新打开软件)
  7. 此时本地计算机可以访问远程局域网内的服务。

此时本地计算机已经可以访问远程计算机局域网内的服务了。但是无法将连接分享到手机上(本地局域网内的其他设备无法访问远程计算机局域网的服务资源),此时再本地计算机安装Wifi共享大师,必须是这个,虽然广告多到炸(删除程序目录下面的一个子程序可以使定时弹出的广告去除)。然后就可以愉快的调试了。PS:修改项目代码里的服务器地址为TeamView给出的服务器地址,好像是7.几开头的那个。

注意点

必须关闭系统防火墙

附件下载

TeamView 端口转发工具

End

9月21日更新 通过上面的Http_redirect无法向远程局域网中的Git服务器推送代码,故更新端口映射软件为PortTunnel,下载地址:立即下载(PS:部分杀软报毒,我也不知道为什么,反正就是能用有效)