分享
是一种美德

使用hexo+github搭建免费个人博客详细教程

mrnaas阅读(788)

1、前言

使用github pages服务搭建博客的好处有:

  • 全是静态文件,访问速度快;
  • 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台;
  • 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的;
  • 数据绝对安全,基于github的版本管理,想恢复到哪个历史版本都行;
  • 博客内容可以轻松打包、转移、发布到其它平台;
  • 等等;

1.1. 准备工作

在开始一切之前,你必须已经:

  • 有一个github账号,没有的话去注册一个;
  • 安装了node.js、npm,并了解相关基础知识;
  • 安装了git for windows(或者其它git客户端)

本文所使用的环境:

  • Windows8.1
  • node.js@5.5.0
  • git@1.9.2
  • hexo@3.2.2

2、搭建github博客

2.1. 创建仓库

新建一个名为你的用户名.github.io的仓库,比如说,如果你的github用户名是test,那么你就新建test.github.io的仓库(必须是你的用户名,其它名称无效),将来你的网站访问地址就是 http://test.github.io 了,是不是很方便?

由此可见,每一个github账户最多只能创建一个这样可以直接使用域名访问的仓库。

几个注意的地方:

  • 注册的邮箱一定要验证,否则不会成功;
  • 仓库名字必须是:username.github.io,其中username是你的用户名;
  • 仓库创建成功不会立即生效,需要过一段时间,大概10-30分钟,或者更久,我的等了半个小时才生效;

创建成功后,默认会在你这个仓库里生成一些示例页面,以后你的网站所有代码都是放在这个仓库里啦。

2.2. 绑定域名

当然,你不绑定域名肯定也是可以的,就用默认的 xxx.github.io 来访问,如果你想更个性一点,想拥有一个属于自己的域名,那也是OK的。

首先你要注册一个域名,域名注册以前总是推荐去godaddy,现在觉得其实国内的阿里云也挺不错的,价格也不贵,毕竟是大公司,放心!

绑定域名分2种情况:带www和不带www的。

域名配置最常见有2种方式,CNAME和A记录,CNAME填写域名,A记录填写IP,由于不带www方式只能采用A记录,所以必须先ping一下你的用户名.github.io的IP,然后到你的域名DNS设置页,将A记录指向你ping出来的IP,将CNAME指向你的用户名.github.io,这样可以保证无论是否添加www都可以访问,如下:

然后到你的github项目根目录新建一个名为CNAME的文件(无后缀),里面填写你的域名,加不加www看你自己喜好,因为经测试:

另外说一句,在你绑定了新域名之后,原来的你的用户名.github.io并没有失效,而是会自动跳转到你的新域名。

3、配置SSH key

为什么要配置这个呢?因为你提交代码肯定要拥有你的github权限才可以,但是直接使用用户名和密码太不安全了,所以我们使用ssh key来解决本地和服务器的连接问题。

用git bash执行如下命令:

$ cd ~/. ssh #检查本机已存在的ssh密钥

如果提示:No such file or directory 说明你是第一次使用git。

ssh-keygen -t rsa -C "邮件地址"

然后连续3次回车,最终会生成一个文件在用户目录下,打开用户目录,找到.ssh\id_rsa.pub文件,记事本打开并复制里面的内容,打开你的github主页,进入setting ->Deploy keys -> New Deploy key:

将刚复制的内容粘贴到key那里,title随便填,保存。

3.1. 测试是否成功

$ ssh -T git@github.com # 注意邮箱地址不用改

如果提示Are you sure you want to continue connecting (yes/no)?,输入yes,然后会看到:

Hi liuxianan! You’ve successfully authenticated, but GitHub does not provide shell access.

看到这个信息说明SSH已配置成功!

此时你还需要配置:

$ git config --global user.name "liuxianan"// 你的github用户名,非昵称
$ git config --global user.email  "xxx@qq.com"// 填写你的github注册邮箱

具体这个配置是干嘛的我没仔细深究。

4、使用hexo写博客

4.1. hexo简介

Hexo是一个简单、快速、强大的基于 Github Pages 的博客发布工具,支持Markdown格式,有众多优秀插件和主题。

官网: http://hexo.io
github: https://github.com/hexojs/hexo

4.2. 原理

由于github pages存放的都是静态文件,博客存放的不只是文章内容,还有文章列表、分类、标签、翻页等动态内容,假如每次写完一篇文章都要手动更新博文目录和相关链接信息,相信谁都会疯掉,所以hexo所做的就是将这些md文件都放在本地,每次写完文章后调用写好的命令来批量完成相关页面的生成,然后再将有改动的页面提交到github。

4.3. 注意事项

安装之前先来说几个注意事项:

  • 很多命令既可以用Windows的cmd来完成,也可以使用git bash来完成,但是部分命令会有一些问题,为避免不必要的问题,建议全部使用git bash来执行;
  • hexo不同版本差别比较大,网上很多文章的配置信息都是基于2.x的,所以注意不要被误导;
  • hexo有2种_config.yml文件,一个是根目录下的全局的_config.yml,一个是各个theme下的;

4.4. 安装

$ npm install -g hexo

4.5. 初始化

在电脑的某个地方新建一个名为hexo的文件夹(名字可以随便取),比如我的是F:\Workspaces\hexo,由于这个文件夹将来就作为你存放代码的地方,所以最好不要随便放。

$ cd /f/Workspaces/hexo/
$ hexo init

hexo会自动下载一些文件到这个目录,包括node_modules,目录结构如下图:

$ hexo g # 生成
$ hexo s # 启动服务

执行以上命令之后,hexo就会在public文件夹生成相关html文件,这些文件将来都是要提交到github去的:

hexo s是开启本地预览服务,打开浏览器访问 http://localhost:4000 即可看到内容

第一次初始化的时候hexo已经帮我们写了一篇名为 Hello World 的文章,默认的主题比较丑,打开时就是这个样子:

4.6. 修改主题

既然默认主题很丑,那我们别的不做,首先来替换一个好看点的主题。这是 官方主题

个人比较喜欢的2个主题:hexo-theme-jekyll 和 hexo-theme-yilia

首先下载这个主题:

$ cd /f/Workspaces/hexo/
$ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

下载后的主题都在这里:

修改_config.yml中的theme: landscape改为theme: yilia,然后重新执行hexo g来重新生成。

如果出现一些莫名其妙的问题,可以先执行hexo clean来清理一下public的内容,然后再来重新生成和发布。

4.7. 上传之前

在上传代码到github之前,一定要记得先把你以前所有代码下载下来(虽然github有版本管理,但备份一下总是好的),因为从hexo提交代码时会把你以前的所有代码都删掉。

4.8. 上传到github

如果你一切都配置好了,发布上传很容易,一句hexo d就搞定,当然关键还是你要把所有东西配置好。

首先,ssh key肯定要配置好。

其次,配置_config.yml中有关deploy的部分:

正确写法:

deploy:
  type: git
  repository: git@github.com:twang211/twang211.github.io.git
  branch: master

错误写法:

deploy:
  type: github
  repository: https://github.com/twang211/twang211.github.io.git
  branch: master

后面一种写法是hexo2.x的写法,现在已经不行了,无论是哪种写法,此时直接执行hexo d的话一般会报如下错误:

Deployer not found: github 或者 Deployer not found: git

原因是还需要安装一个插件:

npm install hexo-deployer-git --save

其它命令不确定,部署这个命令一定要用git bash,否则会提示Permission denied (publickey).

打开你的git bash,输入hexo d就会将本次有改动的代码全部提交,没有改动的不会:

4.9. 保留CNAME、README.md等文件

提交之后网页上一看,发现以前其它代码都没了,此时不要慌,一些非md文件可以把他们放到source文件夹下,这里的所有文件都会原样复制(除了md文件)到public目录的:

由于hexo默认会把所有md文件都转换成html,包括README.md,所有需要每次生成之后、上传之前,手动将README.md复制到public目录,并删除README.html。

4.10. 常用hexo命令

常见命令

hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help  # 查看帮助
hexo version  #查看Hexo的版本

缩写

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

组合命令:

hexo s -g #生成并本地预览
hexo d -g #生成并上传

4.11. _config.yml

这里面都是一些全局配置,每个参数的意思都比较简单明了,所以就不作详细介绍了。

需要特别注意的地方是,冒号后面必须有一个空格,否则可能会出问题。

4.12. 写博客

定位到我们的hexo根目录,执行命令:

hexo new 'my-first-blog'

hexo会帮我们在_posts下生成相关md文件:

我们只需要打开这个文件就可以开始写博客了,默认生成如下内容:

当然你也可以直接自己新建md文件,用这个命令的好处是帮我们自动生成了时间。

一般完整格式如下:

---
title: postName #文章页面上的显示名称,一般是中文
date: 2013-12-02 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: 默认分类 #分类
tags: [tag1,tag2,tag3] #文章标签,可空,多标签请用格式,注意:后面有个空格
description: 附加一段文章摘要,字数最好在140字以内,会出现在meta的description里面
---

以下是正文

那么hexo new page 'postName'命令和hexo new 'postName'有什么区别呢?

hexo new page "my-second-blog"

生成如下:

最终部署时生成:hexo\public\my-second-blog\index.html,但是它不会作为文章出现在博文目录。

4.12.1. 写博客工具

那么用什么工具写博客呢?这个我还没去找,以前自己使用editor.md简单弄了个,大家有好用的hexo写博客工具可以推荐个。

4.12.2. 如何让博文列表不显示全部内容

默认情况下,生成的博文目录会显示全部的文章内容,如何设置文章摘要的长度呢?

答案是在合适的位置加上<!--more-->即可,例如:

# 前言

使用github pages服务搭建博客的好处有:

1. 全是静态文件,访问速度快;
2. 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台;
3. 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的;

<!--more-->

4. 数据绝对安全,基于github的版本管理,想恢复到哪个历史版本都行;
5. 博客内容可以轻松打包、转移、发布到其它平台;
6. 等等;

5、最终效果:

可以访问我的git博客来查看效果: http://myblog.mrnaas.com/

不过呢,其实这个博客我只是拿来玩一玩的,没打算真的把它当博客,因为我已经有一个自己的博客了,哈哈!正因如此,本文仅限入门学习,关于hexo搭建个人博客的更高级玩法大家可以另找教程。

6、参考

【原文】http://blog.haoji.me/build-blog-website-by-hexo-github.html?from=xa

http://www.cnblogs.com/zhcncn/p/4097881.html

http://www.jianshu.com/p/05289a4bc8b2

 

欢迎大家关注公众号:

yarn 安装教程

mrnaas阅读(710)

1.安装yarn
方法一:使用安装包安装

官方下载安装包,https://yarnpkg.com/zh-Hans/docs/install,安装完毕后,一定要配置环境变量。

方法二:使用npm安装

npm i yarn -g

-i:install 

-g:全局安装(global),使用 -g 或 –global

输入yarn -version 可以看到版本号,说明安装成功了。我们就可以在项目中像使用npm一样使用yarn了。

常用命令:
yarn / yarn install 等同于npm install 批量安装依赖
yarn add xxx 等同于 npm install xxx —save 安装指定包到指定位置
yarn remove xxx 等同于 npm uninstall xxx —save 卸载指定包
yarn add xxx —dev 等同于 npm install xxx —save-dev
yarn upgrade 等同于 npm update 升级全部包
yarn global add xxx 等同于 npm install xxx -g 全局安装指定包
使用yarn安装 create-react-app 工具

$ npm install -g create-react-app yarn

图1:npm安装脚手架

图2:yarn安装脚手架。

npm和yarn的区别。见npm和yarn的区别,我们该如何选择?

然后新建一个项目。工具会自动初始化一个脚手架并安装 React 项目的各种必要依赖

$ create-react-app react-app

然后我们进入项目并启动。

$ cd react-app

$ yarn start

此时浏览器会访问 http://localhost:3000/ ,看到 Welcome to React 的界面就算成功了。

添加组件,如:

$yarn add antd

2.卸载yarn
1.安装包直接软件卸载。

2.npm安装的则通过命令npm uninstall yarn -g卸载。

 

欢迎大家关注公众号:


————————————————
版权声明:本文为CSDN博主「格來羙、日出」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w345731923/java/article/details/82878525

 

 

React 学习笔记001-本地环境搭建

mrnaas阅读(592)

1、安装node.js

官网地址:https://nodejs.org/en/

中文网址:http://nodejs.cn/

通过以下命令检查是否安装成功
node -v
npm -v

2、npm包管理工具 基本使用

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
1.允许用户从NPM服务器下载别人编写的第三方包到本地使用。
2.允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
3.允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

本地安装

npm install 包名@版本号
uninstall同理

全局安装

npm install -g 包名@版本号
uninstall同理

其他常见命令
npm list -g 查看安装的包列表
npm list grunt

3、创建自己的第一个react项目

npm install -g create-react-app 安装官方提供的生成react项目demo工具
create-react-app hello-react 在当前目录下创建名为hello-react的项目

如果安装包太慢,可以改为国内的淘宝源
npm config set registry https://registry.npm.taobao.org

cd hello-react 进入项目目录
npm start 运行

4、项目目录结构介绍

yarn.lock 安装包版本号
package.json 运行npm start 命令就是运行该文件里的内容
node_modules 外部包文件
public/index.html 页面上显示的html的内容
public/manfest.json PWA 如果是作为一个app,定义app的图标,主体
src /index.js 项目的执行入口

5、【补充】除了使用npm执行外 还可以用yarn

同理运行命令一样 yarn start

yarn安装教程

参考文章:https://www.jianshu.com/p/2968167c5471

web自动更新版本号清理js、css文件的缓存

mrnaas阅读(791)

问题描述
在web项目开发过程中,我们经常会引用css、js文件,更新文件后常出现缓存问题(明明更改了代码,在浏览器上访问的时候却没有发生变化),这种情况我们通常采用以下两种解决方案:

1、手动清除浏览器缓存,开发人员F12会清理,但你不能这样要求客户。
2、添加版本号(如 layout.css?v=1),每次稍微修改css、js文件,都要更新v后面的数字,麻烦

解决方案
方法一:可以通过js自动给html添加版本号

<script type="text/javascript">
		document.write("<link rel='stylesheet' type='text/css' href='/css/layout.css?v="+new Date().getTime()+"'>"); 
		document.write('<script  type='text/javascript'  src="http://localhost:8000/aaaa.js?v='+Math.random()+'"><\/script>');
</script>

方法二:若是jsp页面,可以使用java代码生成时间戳(若是jsp页面用方法一也行,但此方法更方便)

 <link rel="stylesheet" type="text/css" href="/css/layout.css?v=<%=System.currentTimeMillis() %>">
   <script type="text/javascript" src="<%=ctx %>/js/idvalid.js?v=<%=System.currentTimeMillis() %>" charset="utf-8"></script>

最优方案

以上方案虽然可以防止 js 的缓存了,但是每次刷新页面都会重新生成一个版本号,重新拉取 js 文件,导致不必要的网络开销,稍微修改了一下,使用了 sessionStorage 和时间戳,基本满足了需求了。
方法三:全web页面通用

<script type="text/javascript">
	var timestamp = new Date().getTime();
	var versionStamp = sessionStorage.version;
	if (versionStamp == null || (timestamp - versionStamp) > 1800000) {
	 sessionStorage.version = timestamp;
	}
	document.write("<script type='text/javascript' src='js/index_tool.js?v="+sessionStorage.version+"'><"+'/'+"script>");
	document.write("<link rel='stylesheet' type='text/css' href='/css/layout.css?v="+sessionStorage.version+"'>"); <\/script>');
</script>

我的建议

本人开发jsp,建议使用最简单的方法二,现在网速都是200M的,还在乎这点网络开销?

?v=<%=System.currentTimeMillis() %>"

————————————————
版权声明:本文为CSDN博主「治政」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xyzz609/java/article/details/89327096

deepin/UOS Conky和Conky Manager

wangtong阅读(9074)

1、在终端中安装 conky

sudo apt-get install conky

2、安装Conky Manager

wget --no-check-certificate https://github.com/teejee2008/conky-manager/releases/download/v2.4/conky-manager-v2.4-amd64.run

可以自行参考https://github.com/teejee2008/conky-manager/releases/

3、配置权限and 运行

chmod +x ./conky-manager-v2.4-amd64.run   ##配置权限
sudo ./conky-manager-v2.4-amd64.run  ##运行

4、现在开始自定义配置文件

cd ~/.conky/
新建一个文件夹yxconky并进入文件夹新建一个文件yx_conky

写入以下代码
default_color white
double_buffer yes
no_buffers yes
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
 
own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0
 
double_buffer yes
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders n0
minimum_size 300 1
maximum_width 406
default_color ffffff
default_shade_color 000000
default_outline_color 000000
alignment top_right
gap_x 6
gap_y 5
cpu_avg_samples 2
override_utf8_locale no
uppercase no # set to yes if you want all text to be in uppercase
use_spacer no
use_xft yes
xftfont WenQuanYi Zen Hei:pixelsize=12
override_utf8_locale yes
use_spacer no
minimum_size 300 1
TEXT
${font LCD:style=Bold:pixelsize=40}${alignc}${time %I:%M:%S}
${font LCD:style=Bold:pixelsize=20}${time %Y年%b%d日 星期%a}${alignc}
${font WenQuanYi Zen Hei:pixelsize=14}
 
${color #98c2c7}姓名:  ${color}$alignr 新新点灯
${color #98c2c7}邮箱:  ${color}$alignr 可自己填写
${color #98c2c7}内核:  ${color}$alignr$kernel
${color #98c2c7}已开机: ${color}$alignr$uptime
 
 
${color #98c2c7}CPU使用率: ${color}$cpu%
 
$cpubar
 
 CPU1 温度:  $alignr${exec sensors | grep 'Core 0' | cut -c17-25}
 CPU2 温度: $alignr${exec sensors | grep 'Core 1' | cut -c17-25}
 
${color #98c2c7}CPU占用:${color}
 
 ${top name 1} ${alignr}${top cpu 1} 
 ${top name 2} ${alignr}${top cpu 2} 
 ${top name 3} ${alignr}${top cpu 3} 
 ${top name 4} ${alignr}${top cpu 4} 
 ${top name 5} ${alignr}${top cpu 5} 
 ${top name 6} ${alignr}${top cpu 6} 
 
${color #98c2c7}物理内存:${color}${alignr}$mem / $memmax
 
${membar}
 
${color #98c2c7}根分区: ${color}${alignr}${fs_free /} / ${fs_size /}
 
${fs_bar 4 /}
 
#${color #98c2c7}Home分区: ${color}${alignr}${fs_free /home} / ${fs_size /home}
 
#${fs_bar 4 /home}
 
#${color #98c2c7}网络使用:${color}
 
#下载速度:$alignr${downspeed wlp3s0} k/s
#上传速度:$alignr${upspeed wlp3s0} k/s
${downspeedgraph wlp3s0 324D23 77B753}

保存,并终端输入conky-manager勾选yx_conky文件并进入该程序设置界面打开开机自启动

完成

 

或者直接在终端运行 conky-manager

 

deepin Conky 美化插件

wangtong阅读(506)

Conky 配合 Conky Manager使用:

1、安装Conky 和 Conky Manager

2、配置文件

default_color white
double_buffer yes
no_buffers yes
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0

double_buffer yes
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders n0
minimum_size 290 5
maximum_width 406
default_color ffffff
default_shade_color 000000
default_outline_color 000000
alignment top_right
gap_x 6
gap_y 30
cpu_avg_samples 2
override_utf8_locale no
uppercase no # set to yes if you want all text to be in uppercase
use_spacer no
use_xft yes
xftfont KaiTi:pixelsize=12
override_utf8_locale yes
use_spacer no
minimum_size 290 5
TEXT
${font Microsoft YaHei:style=Bold:pixelsize=22}${alignc}${time %H:%M:%S}
${font Microsoft YaHei:pixelsize=16}${alignc}${time %b%d日星期%a}${alignc}
${color #ffa200}${hr 2}
${font Microsoft YaHei:pixelsize=12}
${color #00ffcf}昵称:${color #00ffcf} $alignr 自定义
${color #00ffcf}邮箱: ${color #00ffcf}$alignr 自定义
${color #00ffcf}主机名:${color #00ffcf} $alignr$nodename
${color #00ffcf}内核: ${color #00ffcf}$alignr$kernel
${color #00ffcf}已运行时间: ${color #00ffcf}$alignr$uptime
${color #ffd700}${stippled_hr 1}
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}CPU 0: ${cpu cpu0}% $alignr$acpitemp°C(T)
${color #dcff82}${cpubar 8 cpu0}
${color #00ff1e}CPU 1: ${cpu cpu1}%
${color #dcff82}${cpubar 8 cpu1}
${color #00ff1e}CPU占用:$alignr CPU%
${color #ddaa00} ${top name 1}$alignr${top cpu 1}
${color lightgrey} ${top name 2}$alignr${top cpu 2}
${color lightgrey} ${top name 3}$alignr${top cpu 3}
${color #ffd700}${stippled_hr 1}$color
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}SAM: $mem $alignr${color #db7093}$memperc%
${color #78af78}${membar 8}
${color #00ff1e}内存占用: $alignr MEM%
${color #ddaa00} ${top_mem name 1}$alignr ${top_mem mem 1}
${color lightgrey} ${top_mem name 2}$alignr ${top_mem mem 2}
${color lightgrey} ${top_mem name 3}$alignr ${top_mem mem 3}
${color #ffd700}${stippled_hr 1}$color
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}硬盘读取速度:${alignr}${diskio_read}
${color #00ff1e}硬盘写入速度:${alignr}${diskio_write}
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}磁盘: ${color}${alignr}${fs_used /}/ ${fs_size /}
${color #78af78}${fs_bar 8 /}
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}网络: $alignr ${color #00ff1e}IP地址: ${color DDAA00}${addr wlp4s0}
${voffset 1}${color #98c2c7} 上传: ${color #db7093}${upspeed wlp4s0}/s ${alignr}${color #98c2c7}总共: ${color #db7093}${totalup wlp4s0}
${voffset 1}${color #98c2c7} 下载: ${color #ddaa00}${downspeed wlp4s0}/s ${alignr}${color #98c2c7}总共: ${color #ddaa00}${totaldown wlp4s0}
${font Microsoft YaHei:pixelsize=12}
${color #ffa200}${hr 2}
${font Microsoft YaHei:pixelsize=20}
${color #00ffcf}${alignc}天行健,君子以自强不息${color #00ffcf}
${color #00ffcf}${alignc}地势坤,君子以厚德载物${color #00ffcf}

 

林清玄:常想一二,不思八九

mrnaas阅读(674)

1

  朋友买来纸笔砚台,请我题几个字让他挂在新居的客厅补壁。这使我感到有些为难,因为我自知字写得不好看,何况已经有很多年没有写书法了。

  朋友说:“怕什么?挂你的字我感到很光荣,我都不怕了,你怕什么?”

  我便在朋友面前,展纸、磨墨,写了四个字“常想一二”。

  朋友说:“这是什么意思?”

  我说:“意思是说我的字写得不好,你看到这幅字,请多多包涵,多想一二件我的好处,就原谅我了。”

  看到我玩笑的态度,朋友说:“讲正经的,到底是什么意思?”

  “俗话说‘人生不如意事十之八九’,我们生命里不如意的事情占了绝大部分,因此,活着的本身就是痛苦的。但是扣除了八九成的不如意,至少还有一二成如意的、快乐的、欣慰的事情。我们如果要过快乐人生,就要常常想那一二成好事,这样就会感到庆幸、懂得珍惜,不致被八九的不如意所打倒了。”

  朋友听了,非常欢喜,抱着“常想一二”回家了。

  2

  几个月后,他来探视我,又来向我求字,说是:“每天在办公室劳累受气,一回到家看见那幅‘常想一二’就很开心。但是墙壁太大,字显得太小,你再写几个字吧!”

  对于好朋友,我一向都是有求必应的,于是为“常想一二”写了下联“不思八九”,上面又写了“如意”的横批,中间顺手画一幅写意的瓶花。

  没想到又过了几个月,我被许多离奇的传说与流言困扰。朋友有一天打电话来,说他正坐在客厅里我写的字前面,他说:“想不出什么话来安慰你,念你自己写的字给你听:常想一二,不思八九,事事如意!”

  接到朋友的电话,我很感动。我常觉得在别人的喜庆里锦上添花是容易的,在别人的苦难里雪中送炭却很困难,那种比例,大约也是“八九”与“一二”之比。不能雪中送炭的不是真朋友,当然更甭说那些落井下石的人了。

  3

  不过,一个人到了四十岁以后,在生活里大概都锻炼出了“宠辱不惊”的本事,也不会在乎锦上添花、雪中送炭或落井下石了。那是由于我们早已经历过生命的痛苦和挫折,也经验过许多情感的相逢与离散,慢慢地寻索出生命中积极的、快乐的、正向的观想。这种观想,正是“常想一二”的观想。

  “常想一二”的观想,乃是在重重的乌云中寻觅一丝黎明的曙光;乃是在滚滚红尘里开启一些宁静的消息;乃是在濒临窒息时浮出水面,有一次深长的呼吸。

  生命已经够苦了,如果我们把五十年的不如意事总和起来,一定会使我们举步维艰。生活与感情陷入苦境,有时是无可奈何的,但如果连思想和心情都陷入苦境,那就是自讨苦吃、苦上加苦了。

  4

  我从小喜欢阅读大人物的传记和回忆录,慢慢归纳出一个公式:凡是大人物都是受苦受难的,他们的生命几乎就是“人生不如意事十之八九”的真实证言,但他们在面对苦难时也都能保持正向的思考,能“常想一二”,最后,他们超越苦难,苦难便化成为生命最肥沃的养料。

  使我深受感动的不是他们的苦难,因为苦难到处都有;使我感动的是,他们面对苦难时的坚持、乐观与勇气。

  原来,“如意”或“不如意”,并不是决定于人生的际遇,而是取决于思想的瞬间。

  原来,决定生命品质的不是“八九”,而是“一二”。

  原来,苦难对陷入其中的人是以数量计算,对超越的人却变成质量。数量会累积,质量会活化。

  既然生命的苦乐都只是过程,我们何必放弃自我的思想去迎合每一个过程呢?

  就快乐地活在当下吧,让每一个当下有情有义、发光发热、如诗如歌!

  来源:散文集《常想一二,不思八九》

关于每次打开smartgit时一直弹出“非盈利….”框解决办法

mrnaas阅读(1096)

使用smartgit时,由于是出于个人使用非盈利目的,因此每次打开时都有一个确认框,必须等待二十多秒才能关闭,不胜其烦,因此寻找破解方法,如下:
 

点击如下链接,跳转到注册页面,选择“在家”,完成注册信息,注意邮箱必须是个人使用的,例如163邮箱、学校邮箱等等。
      https://www.syntevo.com/cn/smartgit/register-non-commercial/


登录注册使用的邮箱,会收到smartgit发送的邮件,里面有一个附件,smartgit.lic,

下载之后打开smartgit,

工具栏选择“帮助”->“注册产品”,选择smartgit.lic的下载路径,点击完成即可。

重启smartgit之后就没有弹出框了。

如果重启时提示不匹配问题,可能是由于刚才注册使用的邮箱与你之前登录smartgit使用的邮箱不一致,

点击左上角工具栏“仓库”->“编辑git配置文件”->“用户”,更新邮箱地址为上面注册使用的邮箱。

————————————————
版权声明:本文为CSDN博主「scut_lrr」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42448226/java/article/details/104790425

deepin/UOS 微信多开教程

mrnaas阅读(12934)

windows 可以通过批处理来实现微信多开,那么deepin/UOS 微信多开教程应该也可以,接下来分享一下通过以下方法,可实现在深度Deepin 15.11操作系统下微信双开的效果。不过也可以采用更为快捷的方法:把图标放到桌面上,然后快速双击。

在深度系统下实现微信双开的方法

1、先在系统下单开微信需要登录一个微信,然后成功后退出。

2、编辑文件然后进入/home/自己用户名/.deepinwine目录,复制Deepin-WeChat文件夹到Deepin-WeChat2。

然后编辑

/opt/deepinwine/apps/Deepin-WeChat/run.sh:(15.11)

/opt/apps/com.qq.weixin.deepin/files/run.sh:(我的是 v20 是这个路径)把里边的内容复制多份  我目前是尝试三开  成功

把里面的内容重复复制一份,就是BOTTLENAME(15.11)改了下:

BOTTLENAME="Deepin-WeChat"

APPVER="2.6.8.65deepin0"

EXEC_PATH="c:/Program Files/Tencent/WeChat/WeChat.exe"

if [ -n "$EXEC_PATH" ];then

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "$EXEC_PATH" "$@"

else

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "uninstaller.exe" "$@"

fi
(v20的内容)
BOTTLENAME="Deepin-WeChat2"

APPVER="2.6.8.65deepin0"

EXEC_PATH="c:/Program Files/Tencent/WeChat/WeChat.exe"

if [ -n "$EXEC_PATH" ];then

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "$EXEC_PATH" "$@"

else

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "uninstaller.exe" "$@"

fi

 

3、找到run_v2.sh(15.11只有这个)或者run_v3.sh(v20是这个)我顺便也把v2的也改了,文件删除相关的行再找到/opt/deepinwine/tools/run_v2.sh文件并且打开它,删除/opt/deepinwine/tools/kill.sh “$name” block这一行即可。

再找到/opt/deepinwine/tools/run_v3.sh文件并且打开它,删除/opt/deepinwine/tools/kill.sh “$name” block这一行即可。
如果你之前运行过微信了那就需要在/home/cnguge/.deepinwine  路径复制Deepin-WeChat   名字和你run.sh的名字对应

v20 工作环境搞定

mrnaas阅读(11410)

linux 菜鸟   笔记本配置偏低  使用win10卡到爆 ,所以试试deepin,最开始用的机15.11,结果由于手欠把系统搞崩溃了,索性直接换v20了,历时一天的时间将自己的工作环境弄好了,包括开发环境和各类软件以及办公聊天工具,TIM/微信/企业微信都替换成最新版本了,目前唯一不知道怎么解决的问题就是 微信截图稍微大一点的话就发不出去了,其他的都还算比较满意,支持deepin,加油!