我的创作纪念日

机缘

我写博客的历史,可以追溯到 2004 年,刚上大学不久,当时家里有电脑的人,可能就不是太多的。当年的博客,还是 MSN Space 的时代,跟现在大多数搞博客的同学一样,很快就沉溺在装修博客的喜悦当中,一个皮肤接着一个皮肤的换,在浏览器上尝试各种 js 特效。

分享的内容,也无非都是一些设定方法,js 代码片段,还有就是整天研究 MSN Space 的漏洞,怎么注入新的特效。那时候的 QQ 空间还在 "花园","小屋" 的时代,一看就是特别女孩子的氛围,完全没有写的动力。

后来,接触到了 WordPress,到 2008 年,我正式设立独立博客,开始玩 WordPress,假设独立博客,学习 Linux 运维知识,数据库,PHP 代码,我就是这样子变成了 PHP 程序员。

再后来,跟初恋女友分手,我清空了博客,开始认认真真专注于博客的写作上。说来可笑,从开始写博客,到 5 年之后,才真正专注到写作这件事情上来。从 2008 年开始认真写作,不再是只执迷于搬家,皮肤,插件,SEO等等问题,到现在,坚持博客已经 15 年了。

我的博客已经积累了 400 多篇原创文章。当然大部分不在 CSDN,这里只是我又一个分享的场所。还是以独立博客为主的,blog.charlestang.org,这是我的独立博客,欢迎大家有空去逛逛。


收获

博客,就是这么一个神奇的东西。其实写博客,非要说需要点什么的话,我觉得是坚持。

无论你写多么无聊的东西,一旦可以坚持,经年累月,你必有收获。至于水平,能力什么的,你终究会进步的,不说多么高超,但是终究会进步的。

写博客的人,一定会在最后,变得严肃。 ------ 佚名

如果你像我一样写个很多年,就会懂这句话的意思。你后来会发现,只有严肃才是写作的归宿。你不再喜欢嬉笑怒骂,至少不会是再以这些东西为内核。为了流量那种写作,不能叫写作,只能叫工作、赚钱养家,只有真正严肃起来,为了自己写点东西,才是真正的写作,自己才能感受愉悦。

当你发现了这件事情,你就有了最大的收获。

当然,通过写作,训练思维,让自己记录有价值的事情,提升日常讲话的水平和流利度等等乱七八糟的好处不胜枚举,但此时此刻我觉得都不重要了。


日常

阅读是一座随身携带的避难所。------ 毛姆

那写作就是自己思想的后花园。------ 佚名

十几年下来,时不时写点什么,已经成为一种习惯,对我个人来说毕竟不是什么工作,也不在意什么流量关注度,所以,还是比较随意的。当然,这里在 CSDN 创作来说,还是有点目的的,主要是希望更多人能关注我的开源项目,我希望认认真真写点开源的。这里不插入链接了。

我开源的也是用于博客创作的软件和工具,可见我对这个事情是多么认真,我找了一套解决方案,用于处理博客的问题,但是发现这方案里缺个内容管理。Hexo 是一个静态页面生成器,但是对内容管理和组织方面却弱得很,仿佛就没考虑过用户会大规模,编辑和组织内容。也不考虑用户的整理需求。这点和 WordPress 完全不同。

但是因为抓住一点攻击其余,所以它在静态化,和站点皮肤等方面真的很不错。我不能忍,于是就自己写了一个客户端来帮助博主管理和组织内容。我也意识到,这个时代,还肯沉下心来写点东西,组织内容的人怕是不多了。所以我没有为软件收费而是开源到了 GitHub。

所以,在这边创作,除了真心分享一些自己的所得和知识,也是为了借机推广开源软件。希望大家知道后也不要反感。多谢理解了。


成就

成就什么的是没的,我永远不会为自己的某段代码感到满意。写出来总还是要去搜索最佳实践的。总觉得自己用的不是最优方式。也很追求和执迷于最优方式。

所以,一段代码如果成为自己的一种成就,那是很可悲的。代码在我看来没有什么价值,只是程序员管理复杂度后,不得不呈现的一种记录。也是和机器沟通的手段。怎么能称为成就呢?

不过既然这个活动需要分享一段代码的话,我就分享一段,不能说成就,只能说日常用得比较多:

python 复制代码
#!/usr/bin/env python3
#coding:utf-8

# dependency: PyYAML 3.13
# the config file should be a YAML file to describe the server
# configurations like this:
# ---
# personal:
#     - user@192.168.1.1:22      local-test-machine
#     - user@172.16.26.1:22      company-test-machine
# working:
#     - user@192.168.1.1:22      local-test-machine
#     - user@172.16.26.1:22      company-test-machine

import sys
import os
import re
from yaml import load
from yaml import FullLoader
from functools import reduce

server_config_file = os.path.expanduser("~/server_list/config.yml")
server_config = load(open(server_config_file, 'r'), Loader=FullLoader)
template = "\x1b[0;32;40m%2d) \x1b[0;36;40m%{width}s\x1b[0m@\x1b[0;33;40m%-18s \x1b[1;35;40m#%s\x1b[0m"

def render(servers):
    max_width = reduce(max, map(lambda x: len(x[1]), servers))
    for c in servers:
        print(template.replace('{width}',str(max_width)) % c)
    print('')

def section_parse(key, order, servers):
    items = []
    for svr in server_config[key]:
        order  += 1
        user, host, port, name = re.split(r'[@:\s]\s*', svr)
        items += [(order, user, host, name)]
        servers += [(user, port, host)]
    return items, servers, order


servers = []
line_num = 0;

working, servers, line_num = section_parse('working', line_num, servers)

print("Please select the server you want to access:\n\nFor working:\n")
render(working)

personal, servers, line_num = section_parse('personal', line_num, servers)

print("Personal:\n")
render(personal)

number = 0
while number < 1 or number > len(servers):
    try:
        number = int(input("Type in the number:>"))
    except (EOFError, NameError, SyntaxError, KeyboardInterrupt):
        break;
    if number >= 1 and number <= len(servers) :
        break

if number > 0:
    svr = servers[number - 1]
    cmd = "ssh -l %s -p %s %s" % svr
    print("Now execute command:")
    print(cmd)
    os.system(cmd)

sys.exit(0)

这也是我开源在 GitHub 上的一个项目里的代码,项目叫 env,主要用于快速将一台 Linux 或者 Mac 的 Shell 初始化成自己习惯并且喜欢的环境。

上述代码是 goto 命令的源码,用 Python 实现,作用是在命令行下,快速连接一台服务器。服务器的 IP 和 用户,密码,通过一个 yml 配置文件列示。放在自己的私有文件夹里。执行命令效果:

跳出来两个服务器列表,输入序号,就可以快速连接过去了。


憧憬

40 岁的人,已经在随时准备失业的边缘了,没什么所谓的职业规划了。创作规划的话,我会陆续在 CSDN 分享我创作开源软件的技术、过程,已经投身开源的方方面,比如 GitHub,比如项目管理,甚至比如英语等等。技术方面就是 Vue,Electron,TypeScript,以及围绕前端项目的一些工具链。

我本身擅长后端开发,架构,也写过客户端,现在想学习 iOS 开发,也可能会分享这方面的各种笔记、观点,学习体会等等。希望大家关注我! 谢谢!

Tips

  1. 您发布的文章将会展示至 里程碑专区 ,您也可以在 专区 内查看其他创作者的纪念日文章
  2. 优质的纪念文章将会获得神秘打赏哦
相关推荐
VertexGeek14 分钟前
Rust学习(四):作用域、所有权和生命周期:
java·学习·rust
抱走江江1 小时前
SpringCloud框架学习(第二部分:Consul、LoadBalancer和openFeign)
学习·spring·spring cloud
不会编程的懒洋洋2 小时前
Spring Cloud Eureka 服务注册与发现
java·笔记·后端·学习·spring·spring cloud·eureka
scc21402 小时前
spark的学习-06
javascript·学习·spark
luoganttcc2 小时前
能否推荐开源GPU供学习GPU架构
学习·开源
垂杨有暮鸦⊙_⊙3 小时前
阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_技术趋势
笔记·学习·无人机
Mephisto.java3 小时前
【大数据学习 | HBASE高级】region split机制和策略
数据库·学习·hbase
Xiao Fei Xiangζั͡ޓއއ4 小时前
一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数
c语言·开发语言·笔记·程序人生·面试·蓝桥杯·学习方法
Bio Coder4 小时前
学习用 Javascript、HTML、CSS 以及 Node.js 开发一个 uTools 插件,学习计划及其周期
javascript·学习·html·开发·utools
Allen zhu4 小时前
【PowerHarmony】电鸿蒙学习记录-准备工作
学习·华为·harmonyos