朱晓峰

一只生之无趣死之乏味的丧家之犬


  • Home

  • About

  • Archives

  • Search

[算法训练]LeetCode 53: 最大子序和

Posted on 2020-01-03 Edited on 2020-05-12 In algorithm

题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: `[-2,1,-3,4,-1,2,1,-5,4]`

输出: `6`

解释: 连续子数组 `[4,-1,2,1]` 的和最大,为 `6`。


进阶:

如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。

Related Topics 数组 分治算法 动态规划

Read more »

黑苹果安装小记(z390+i7-9700k+uhd630)

Posted on 2019-11-17 Edited on 2020-05-09 In mac

前言

为什么要装黑苹果?

因为穷而且还爱折腾,延续了我小时候一天不挨打就皮痒的性格。

准备工作

首先,需要判断自己电脑硬件是否支持安装黑苹果,或者是否有这套硬件的成功案例。

选择适用的硬件,黑苹果就已经成功了一大半。

我的主要硬件配置如下:

设备 型号
CPU i7 9700K
核显 Intel UHD Graphics 630
主板 微星 MAG Z390 TOMAHAWK (MS-7B18)
独显 RTX 2060 super

安装黑苹果大致流程:

  • 制作安装盘

  • 配置好bios

  • 根据机器硬件修改好config.plist文件,至少有一份可以进macOS系统的config.plist,然后使用Clover Configurator修改起来会方便点

  • 启动、抹盘、安装

  • 测试各个功能是否正常工作

Read more »

docker无法启动解决方案

Posted on 2019-10-10 Edited on 2020-05-09

太长不看:重启大法好,sudo reboot

先说个题外话,dockerd是用sudo启动的话,docker-compose也要用sudo。

有一次排查问题,我多次重启docker

sudo systemctl restart docker

并且删除了/run/containerd/containerd.sock和/var/run/containerd/containerd.sock两个socket文件

1
2
sudo ls -l /run/containerd/containerd.sock
srw-rw----. 1 root root 0 Oct 10 13:59 /run/containerd/containerd.sock

然后docker就起不来了 >.<

那就排查问题,先看看sudo systemctl status docker -l和sudo journalctl -xe

Read more »

解决mac下iterm2使用rz、sz导致终端卡死的情况

Posted on 2019-09-27 Edited on 2020-04-29 In mac

安装lrzsz

mac: brew install lrzsz

centos: yum install lrzsz

创建两个脚本

将下面两个脚本保存至mac电脑的/usr/local/bin/

iterm2-send-zmodem.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
else
FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
fi
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \\x18\\x18\\x18\\x18\\x18
sleep 1
echo
echo \# Cancelled transfer
else
/usr/local/bin/sz "$FILE" -e -b
sleep 1
echo
echo \# Received $FILE
fi

iterm2-recv-zmodem.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
else
FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
fi

if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \\x18\\x18\\x18\\x18\\x18
sleep 1
echo
echo \# Cancelled transfer
else
cd "$FILE"
/usr/local/bin/rz -E -e -b
sleep 1
echo
echo
echo \# Sent \-\> $FILE
fi

给予上述两个脚本足够的运行权限

1
2
chmod 777 /usr/local/bin/iterm2-send-zmodem.sh
chmod 777 /usr/local/bin/iterm2-recv-zmodem.sh

设置iterm2,添加trigger

添加两条trigger

1
2
3
4
Regular expression: \*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Instant: checked
1
2
3
4
Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
Instant: checked

iterm2设置

iterm2设置

从Gogs迁移至Gitlab

Posted on 2019-09-19 Edited on 2020-04-29 In qingyou

团队创立初期,我们调研了一下当时市面上的代码管理平台,github、gitlab、gogs等,最后我们选择了免费开源的gogs,当时可以满足我们的需要,不过如今团队不断壮大,人丁兴旺,但是测试、部署、上线的流程还是比较原始,虽然写了一些脚本并用webhook触发,但管理起来比较麻烦。

我们用了gogs也有两年了,ci一直是个问题,虽然gogs也有解决方案,但感觉集成度不高,所以考量了一下,决定将团队从gogs迁移至gitlab,首先解决gitlab license的问题,在上一篇博文中已经搞定了。

接下来就是要把gogs的数据迁移到gitlab,这边写了个脚本https://github.com/shafferjohn/migrate-gogs-to-gitlab

就是先迁移用户,然后group我手动创建了,再创建project,最后迁移repo。

后来发现,git push –mirror时候,gitlab会自动创建project。

现在团队用上了gitlab,可以更愉快地玩耍了(逃 >.<

Gitlab ee 许可证破解 Gitlab Enterprise Edition License Crack

Posted on 2019-09-19 Edited on 2020-04-29 In qingyou

version: 12.2.5-ee

搞定,挺简单的。

我为什么要写博客

Posted on 2019-06-30 Edited on 2020-04-29 In trivia

  说实话,我是不想写博客的。生活的不幸就像条恶狗,对我紧追不舍,我哪有空写博客?但有时候你把你的故事以第三人称的视角说出来,就会觉得轻松一点。

  可我并不打算让我的生活轻松一点,所以我不想说了。

  希望这是我最后一篇博文,希望这世间可以对我这个垃圾做最后一次分类。

Hello World

Posted on 2019-06-30 Edited on 2020-04-29 In trivia

我不知道自己已经搭建过多少次博客了,每次都是那么两三篇博文,其中还有一篇是Hello World,人老了,累了,折腾不动了,要是这次还不行,就用纸笔手写了。

没什么好说的,Goodbye World.

12
Shaffer John

Shaffer John

一只生之无趣死之乏味的丧家之犬
18 posts
5 categories
14 tags
Chat
GitHub E-Mail
© 2020 Shaffer John
Powered by Hexo
|
Theme – NexT.Muse
0%