请注意,这是MAC 系统适配的webstrom
如果你的系统是windows ,那么这个版本不适用,再去网上找一找!
请注意,这是一个老版本 2021版
如果你不接受老版本,那么下面的内容就不用看了.
如果你尝试了很多办法都无法继续使用webstrom
不防试一试这款试用版 (无限循环试用,前提是不要升级)
download URL 链接: https://pan.baidu.com/s/1klFAS5mJyWLRGViSq0zomQ
提取码: rqhu
试用方法
下载安装
拖拽直接安装
选择Evaluate
选择30天试用
然后创建一个空项目
把安装包中的 ide-eval-
2023-02-03
2281
开发工具
查看更多
推荐官方下载版本 1.5.10
其他版本可能并不适用此方法!
1.下载安装应用后打开 typora
右下角可以看到 "未激活" 字样.
2.推出 typora
程序坞上右键,退出应用.
3.打开finder
按下快捷键 command+shift+g ,
输入下面的路径,
/Applications/Typora.app/Contents
找到/Resources/TypeMark/page-dist/static/js/LicenseIndex.....如下图
4.使用vscode打开文件 输入 hasActivated="true"e.ha
2023-01-19
1138
开发工具
查看更多
什么是BFF框架 BFF框架指的是一种逻辑分成,而非一种新技术;
即 Backend For Frontend(服务于前端的后端),也就是服务器设计 API 时会考虑前端的使用,并在服务端直接进行业务逻辑的处理,又称为用户体验适配器.
为什么要使用BFF 当然一般情况下后端 api 不需要区别对待不同的前端;
不同的前端平台所带来的差异化不会很大,但有些特殊的商业软件会细分到以上 3 种不同的前端平台.
如果是基于这个假设那么前端每做一点改变都需要后端的支持;
有没有一个中间件平台提供所有前端所需的 api,同时负责和后端交互呢?
对于基本的小改动中间件平台完全可以提供其相应的数据支持,而不
2021-01-21
6070
心得
查看更多
sync 包的简介 Go语言的sync包提供了常见的并发编程控制锁;
在并发编程中锁的主要作用是保证多个线程或者 goroutine在访问同一片内存时不会出现混乱;
golang 中使用 go 语句来开启一个新的协程。 goroutine 是非常轻量的,除了给它分配栈空间,它所占用的内存空间是微乎其微的;
但当多个 goroutine 同时进行处理的时候,就会遇到比如同时抢占一个资源,某个 goroutine 等待另一个 goroutine 处理完某一个步骤之后才能继续的需求。
在 golang 的官方文档上,作者明确指出,golang 并不希望依靠共享内存的方式进行进程的协同操作。
而是希
2021-01-13
5263
go
查看更多
yarn是什么 Yarn是一个用于node.js应用程序的高级包管理软件。它是任意一个其他Nodejs包管理器的快速、安全和可靠的替代方案,比npm更好的解决包依赖问题。本篇文章介绍在CentOS,Redhat和Fedora系统上安装Yarn的方法。
centos下如何安装 使用NPM安装Yarn Yarn组件可与NPM一起安装。只需运行以下命令即可全局安装Yarn。另外,没有-g,就是仅为当前项目安装。
$ sudo npm install yarn -g
用脚本安装Yarn 这是安装Yarn最为推荐的方法。这将下载yarn档案并在home的.yarn目录下提取。脚本还设置了PATH环境
2020-12-27
4901
linux
查看更多
解决Homebrew 更新卡住的问题 brew install 安装软件时会遇到先执行 update ,
而整个update 过程brew 会从 github上下载代码,
github 用的aws ,而aws在我们的网络环境下访问都非常非常慢,
导致 update 会被卡住,或者几k的速度在下载.
给brew 换源 这里推荐试用 中科大的源,
之前换过 阿里的镜像,
但是 阿里镜像里只有brew-core 没有brew-cask ,
导致 update 过程中,依然从 github 拉取 brew-cask的代码, 就算单独把brew-cask 的源换成中科大镜像依然无用.
所以干脆全部换成
2020-12-25
3871
开发工具
查看更多
什么是微服务 微服务极大的改变了服务端引擎的架构方式;
微服务不是一个单一的巨型的用来托管应用程序所有业务逻辑的代码库,而是反映了分布式系统模型,在该模型中,一组应用程序组件协同工作来满足业务需求;
通过遵循十项基本的微服务最佳实践,你可以实现一个高效的微服务生态系统,从而避免不必要的架构复杂性.
单一责任原则 就像代码中的类一样,它仅仅在单个原因情况下改变,微服务也是采用类似的方式建模;
构建可能会改变一个以上的业务这种臃肿的服务是一个非常不好的实践.
例如:你正在构建用于订购披萨的微服务;
你可以基于功能构建下面这些组件,诸如InventoryService,OrderService,P
2020-11-19
3221
Java
查看更多
centos下安装 docker 卸载老版本docker 较旧版本的Docker被称为docker或docker-engine.请卸载它们以及相关的依赖项
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
2020-11-01
7256
开发工具
查看更多
mac下安装 docker 官网下载地址:
https://docs.docker.com/docker-for-mac/install/
安装启动 docker
左小角显示 docker running
shell 执行 docker version
$ docker version
Client: Docker Engine - Community
Cloud integration: 1.0.4
Version: 20.10.0
API version: 1.41
Go version: go1.13.15
Git commit:
2020-10-09
3345
开发工具
查看更多
mongod 启动报错 $ mongod --config /usr/local/etc/mongod.conf
Error parsing YAML config file: yaml-cpp: error at line 9, column 9: illegal map value
try 'mongod --help' for more information
报错原因 mongodb 3.0之后的配置文件采用YAML格式;
YAML 格式约定如下:
: 形式定义配置文件
: 后面如果有 key 前面有空格(一般是2个)不能是tab键 , value 前面必须有一个空格
:
2020-09-19
5657
mongodb
查看更多
go语言中的 switch 可以一个条件一个分支
switch flag {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
}
可以多条件写一个分支
switch flag {
case 1:
fmt.Println("one")
case 2,3,4:
fmt.Println("two,three,four")
}
可以把判断条件写到case 后面 switch {
case flag == 1:
2020-09-12
3437
go
查看更多
go语言实现欧几里得算法 求2个数的最大公约数 辗转相除法
大数对小数求余
余数不为零时,小数对余数求余
余数为零时,小数就是俩个数的最大公约数
package main
import "fmt"
func divisor(min, max int) (maxDivisor int) {
//用大数对小数取余
complement := max % min
//余数不为零,小数作为大数,将余数作为小数,大数对小数递归求余
if complement != 0 {
maxDivisor = divisor(complement, min)
2020-09-10
3301
go
查看更多
go语言中的随机数
math/rand包操作随机数,
rand.Seed(seedNum)方法设定种子值,
rand.Intn(n)获取一个小于n的随机数,[ 同一个种子值,生成的随机数是确定的 ]
所以go语言中的随机数取决于种子的随机性,
一般情况下可以采用系统时间的毫秒数作为种子值.
当种子值相同时 package main
import (
"fmt"
"math/rand"
)
func main() {
rand.Seed(888)
//获取8个小于1000的随机数
for i := 0; i < 8; i++ {
2020-08-03
3615
go
查看更多
Docker Compose是什么
Docker Compose 是一个工具,这个工具可以通过一个 yml 文件定义多容器的 Docker 应用.
通过一条命令就可以根据 yml 文件的定义去创建或者管理多个容器.
什么是yml文件 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互.
如何定义yml文件 新建 docker-compose.yml 文件
version: '3.7'
services:
mongodb:
contain
2020-07-11
3706
Docker
查看更多
go 冒泡排序 & 选择排序 冒泡排序
将每一个数同相邻的下一个数对比,如果比下一个数大则交换位置.
func bubble(list []int) []int {
//用来拍断是否完成排序
flag := true
len := len(list)
for i := 0; i < len-1; i++ {
//预设没有发生交换 flag=true,当发生交换,flag=false
flag = true
for j := 0; j < len-1-i; j++ {
2020-07-09
2958
go
查看更多
go语言中的错误处理
go语言中遇到错误,一般直接返回 error ,如果手动无法处理的 error ,可以直接触发 panic .
当遇到一些严重错误,比如数组,切片越界等错误,直接 panic 也会被触发.
panic 一但被触发,当前执行的程序会退出.
package main
import (
"fmt"
)
func main() {
fmt.Println("before panic")
panic("program crash")
fmt.Println("after panic")
}
执行结果:
./prog.go:24:2:
2020-07-02
3677
go
查看更多
代码的整洁和进行合理的分流
http.StripPrefix函数的作用之一,就是在将请求定向到你通过参数指定的请求处理处之前,将特定的prefix从URL中过滤出去.
下面是一个浏览器或HTTP客户端请求资源的例子:
/assets/js/page.min.js
StripPrefix 函数将会过滤掉/assets/,
并将修改过的请求定向到http.FileServer所返回的Handler中去,因此请求的资源将会是:
/js/page.min.js
http.FileServer 返回的Handler将会进行查找,并将与文件夹或文件系统有关的内容以参数的形式返回给你
(在这里你将&
2020-06-12
3770
go
查看更多
回顾 一.之前说到了go中如何实现类 传送门
二.go中如何实现类的封装 传送门
go 语言中如何实现继承 package main
import (
"fmt"
)
type people struct {
name string
age int
}
func (p people) GetName() string {
return p.name
}
type Student struct {
people
grade int
}
func (s Student) GetGrade() int {
return s.gr
2020-06-10
3628
go
查看更多
go中的类的定义和使用 之前一篇博客详细介绍了go语言中如何定义类,使用类,
点击查看
go语言中如何实现封装? go是直接支持strut的封装的,go语言的可见性是根据首字母大小写来实现的.
首字母大写表示对外部可见,类似C#中的public,首字母小写,对外部不可见,类似C#中的private.
package main
import (
"fmt"
)
type Student struct {
name string
age int
}
func (s Student) GetName() string {
return s.name
}
func
2020-06-03
3158
go
查看更多
go语言中的类是如何实现的?
go语言中严格意义来说是没有类的概念,当然也不存在面向对象的封装和继承,
但是go语言可以通过struct 结构体来模拟类的概念,试的我们用起来像是一种类.
struct 如何来实现面向对象的类? struct 首先是一种类型,值类型.它是由一系列具有相同类型或不同类型的数据构成的数据集合.
和c语言的struct很像,用起来就相当于java / c# 中的的class .
struct 的定义 下面的内容中我们直接把struct 称呼为 "类"
type student struct {
name string
age
2020-05-28
5778
go
查看更多
go语言中默认用换行来表示语句结束,那么能不能用分号来代替换行呢?
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
main函数的左花括号必须在main同行,否则出错. 为什么go语言要这么玩呢? 这是为了在语言层面强制让所有使用者统一编程规范.
看看go圣经中的原话, 我来手动打一下: In effect, newlines following certain tokens are converted into semicolons, so where newline
2020-05-23
3616
go
查看更多
容器之间为什么要互访 docker容器与容器之间是隔离状态,不能互相访问,但如果有些依赖关系的服务要如何访问对方呢?
介绍三种方法来解决容器互访问题.
虚拟IP访问 安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问。
运行一个centos镜像, 查看ip地址得到:192.168.32.2
首先通过 docker ps 查看当前电脑上运行的容器实例
$ docker ps
CONTAINER ID IMAGE COMMAND CREATE
2020-04-20
4600
Docker
查看更多
docker 创建mongodb 容器 安装 mongodb 镜像 拉取官方镜像
docker pull mongo
本地创建数据库目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:03:15]
$ sudo mkdir mongodb
不要忘记给目录 777 权限
sudo chmod 777 mongodb
本地配置文件目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:27:24] C:130
$ sudo mkdir docker/mongodb
不要忘记给目录 777 权限
sudo chmod
2020-04-09
9846
Docker
查看更多
docker logs-查看docker容器日志 命令格式:
$ docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until st
2020-01-19
2390
开发工具
查看更多
前言 markdown的流行让大部分人脱离UI编辑专心致志写作,体验非常棒.
但是市场主流的markdown编辑器在上传附件功能方面一直都没有太得心应手的工具.
今天给大家推荐typora编辑器搭配PicGo自定义图床,让你随心所欲文档中插入图片.
typora Typora是一款由Abner Lee开发的轻量级Markdown编辑器,适用于OS X、Windows和Linux三种操作系统,是一款免费软件。与其他Markdown编辑器不同的是,Typora没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的功能,但也可切换至源代码编辑模式。
---维基百科
下载
2020-01-08
5802
开发工具
查看更多
关于 TCP可靠连接在之前有专门的介绍,点击连接查看.
netstat 命令 netstat 用于打印网络连接、路由表、连接的数据统计等,我们上文中介绍的各种连接状态都可以通过该命令进行统计
参数介绍:
- -a:列出所有状态的连接
- -l:列出正在监听状态(State=LISTEN的连接
- -t:列出所有 tcp 协议的连接
- -u:列出所有 udp 协议的连接
- -n: 开启域名解析,将对应的域名解析为 IP
- -p:列出正在监听的进程名称和进程 PID(PID/Program name),在 root 用户下启动的进程,普通用户是查不到对应的进程名称的
- -e:列出进程对应
2019-12-19
1587
杂谈
查看更多
levelup
是一个由谷歌构建的简单 key-value 数据库.
它在 Google Chrome 和许多其他产品中使用,使用 fast Snappy算法,可以将任意字节数组作为键和值.
leveldown
它提供了一个纯 C++ 绑定到 LevelDB.
在浏览器或者 memdown 中,有许多可选存储( 如 level.js ),用于内存存储中的. 它们通常支持键和值的字符串和缓冲区.
对于更丰富的数据类型集,可以用 encoding-down 包装存储.
level
它可以看做是包的一个集合,捆绑了 levelup , leveldown 和 encoding-down.
它的
2019-12-12
3632
javascript
查看更多
es6 中的class ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的。
function Point(x, y) {
this.x = x;
this.y = y;
}
Point.prototype.toString = function() {
return '(' + this.x + ',' + this.y + ')';
}
等同于
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toStri
2019-10-09
1480
javascript
查看更多
什么是区块链 区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;
它具有分布式数据存储、点对点传输、共识机制、加密算法等计算机技术,通过维护数据块的链式结构进行持续增长的、不可篡改的数据记录.
区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块.
工作原理 区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组
2019-09-11
1513
区块链
查看更多
关于axios axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js.
主要功能
从浏览器中创建 XMLHttpRequests
从 node.js 创建 http 请求
支持 Promise API
拦截请求和响应
转换请求数据和响应数据
取消请求
自动转换 JSON 数据
客户端支持防御 XSRF
浏览器支持
使用 浏览器端 直接引用:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
使用 bower:
bower ins
2019-08-27
2451
javascript
查看更多
前言 现在https协议以及成为站点标配,
前面写过一篇关 http跳转https服务的博客,
有些人询问如何申请SSL证书.
https优点 提升搜索排名
实现网站HTTPS化,加密用户与网站间的交互访问,强化网站用户侧可信展示程度,防劫持、防篡改、防监听.
采用Https加密的网站在搜索引擎显示结果中的排名将会更高,有利于提升网站的搜索靠前及站点可信度.
申请SSL证书 一般的云服务器厂商都支持购买证书,
我们今天说的是在阿里云免费申请SSL证书.
阿里云SSL证书品牌有
GeoTrust
Symantec (赛门铁克)
GMO GlobalSign
CFCA
我们选择个人免费类型
2019-08-17
2205
心得
查看更多
什么是事件循环 Event loop 事件循环是 Node.js 处理非阻塞 I/O 操作的机制——尽管 JavaScript 是单线程处理的——当有可能的时候,它们会把操作转移到系统内核中去。
既然目前大多数内核都是多线程的,它们可在后台处理多种操作。
当其中的一个操作完成的时候,内核通知 Node.js 将适合的回调函数添加到 轮询 队列中等待时机执行.
工作机制是什么样的? Client 请求到达 node api,该请求被添加到Event Queue(事件队列)[这是因为Node.js 无法同时处理多个请求]
Event Loop(事件循环) 始终检查事件队列中是否有待处理事件,如果
2019-08-03
1753
nodejs
查看更多
前言 vscode优势强劲,让各种技术栈同学爱不释手,不仅仅是IDE足够优秀,而且他的生态也非常丰富,各种各样的插件让你武装到牙齿.
今天推荐的2款插件本人都在用.
koroFileHeader
文件头部加注释
光标处添加函数注释
文件头部加注释 文件头部注释在你创建文件自动添加,
如果是老文件,保存时自动添加更新记录.
/*
* @Author: zhangzhi
* @Date: 2019-07-11 13:40:28
* @LastEditTime: 07-11 17:15:57
* @LastEditors: zhangzhi
* @Description: In User Set
2019-07-11
3784
javascript
查看更多
什么是内部类
把类定义在另一个类的内部,该类就被称为内部类.
非常重要的一点是,内部类能够访问外部类的所有成员,包括private修饰的.
为什么需要内部类 Java的内部类让我很容易的想起来JavaScript的闭包,闭包就是定义在一个函数内部的函数——这听起来和Java的内部类定义一样一样的.
本质上,闭包是将函数内部与函数外部连接起来的桥梁.
内部类一样,它是将内部类与外部类连接起来的桥梁.
内部类有何优势
内部类可以直接访问外部类中的成员(包括私有成员),
内部类可以独立地继承一个抽象类或者实现一个接口,无论外部类是否也这样做了,对内部类都没有影响.
可以模拟实现多继承
我们知
2019-07-02
1458
Java
查看更多
vue 和 react 的相同点 1.他们都是JavaScript的框架,专注于创造前端的富应用
2.不同于早期的JavaScript框架“功能齐全”,React与Vue只有框架的骨架,其他的功能如路由、状态管理等是框架分离的组件。
3.Vue.js(2.0版本)与React的其中最大一个相似之处,就是他们都使用了一种叫’Virtual DOM’的东西都鼓励组件化
4.看到React和Vue都有’props’的概念,这是properties的简写。props在组件中是一个特殊的属性,允许父组件往子组件传送数据。
5.React和Vue都有自己的构建工具,你可以使用它快速搭建开发环境
6.Re
2019-06-28
1611
vue
查看更多
docker 安装 redis 拉取镜像 docker pull redis
宿主机创建映射目录 创建目录 sudo mkdir -p docker/redis/redis01/conf
sudo mkdir -p docker/redis/redis01/data
conf 目录放redis.conf 配置文件
data 目录映射redis数据目录
上面文件都要chmod 777 的权限
创建配置文件 在线拉取一个 redis.conf 放入 docker/redis/redis01/conf 目录下
cd docker/redis/redis01/conf
wget http:
2019-06-18
3122
Docker
查看更多
ES6 下export 和 export default 的区别
export与export default均可用于导出常量、函数、文件、模块等
你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
在一个文件或模块中,export、import可以有多个,export default仅有一个
通过export方式导出,在导入时要加{ },export default则不需要
ES6 下 export 导出方式
//a.js
export const str = "blablabla~";
export function
2019-05-28
1616
javascript
查看更多
什么是TCP协议
位于 OSI 模型中的传输层(第四层),是一种端对端的传输协议
面向连接的、可靠的协议
通过校验、序列化、确认应答、重发控制、窗口控制等机制实现可靠传输
由建立连接、数据传输和连接释放三个阶段组成
采用三次握手建立连接,采用四次挥手关闭连接
OSI
Open Systems Interconnection
网络堆栈中协议的分层结构,TCP在此结构的第四层位置.
TCP三次握手 三次握手为了使 Client 和 Server 都确认是否有接受对方的数据和发送数据给对方的能力:
这里不要把图里的 Client/Server 和项目里的客户端服务器端混淆,主动发起连接的一方或者
2019-04-21
1566
杂谈
查看更多
javascript中的 object javascript中的object是由多个名/值对组成的无序的集合;
object 中每个属性对应任意类型的值;
定义对象可以使用构造函数或字面量的形式.
var obj = new Object;
obj.name = "一介布衣";
obj.show = function(){}; //添加行为
除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性或修改原有的属性
Object.defineProperty Object.defineProperty(obj, prop, descriptor)
参数说明:
2019-04-18
1408
javascript
查看更多
go 语言命名 go 语言不像java 等传统面向对象语言一样有访问修饰符;
它是从语法层面做了限定:
想要对外暴露的名字必须大写字母开头 [类似 public 修饰符]
不想对外暴露的名字必须小写字母开头 [对其他包不可见,类似私有变量]
包名称命名规则 取名要有意义,不与标准库冲突;
包名与目录名一致;
包名要使用小写开头的单词;
不混合大小写或者下划线等;
如:
package yijiebuyi
文件命名规则 取名要简短,有意义;
小写单词打头;
多个单词使用下划线分隔;
blog_content.go
结构体命名规则 驼峰命名法.
至于大驼峰还是小驼峰取决于该结构体是否要向
2019-03-19
2214
go
查看更多
前言 本人当前使用的mongodb客户端版本Robo 3T 1.3.1
配置连接远程mongodb时报错:
Error: Failed to execute "listdatabases" command
原因是因为今天mongodb config中指定了权限验证
开启mongodb验证
/etc/mongod.conf
security:
authorization: enabled
因为mongodb安装以后只在cmd中进行本地访问,所以要使用图形界面就需要使用登录账号及密码
解决方案 之前mongodb 采用 SSH 远程连接mongodb的方式,
现在需要重新编辑
添加Auth
2019-03-09
4750
mongodb
查看更多
jsx代码格式化错乱 当你在用vscode编写jsx代码时,也许你的编辑器设置了自动保存,或者自动格式化代码.
而vscode 对js文件中的 jsx 代码格式化是下面这个样子的:
如何修复这种情况
首先安装插件 Prettier
vscode扩展插件中搜索 Prettier 安装
修改配置文件 vscode 文件-> 首选项-> 设置->用户->文本编辑器->文件
右侧添加项:
"*.js": "javascriptreact"
或者在配置文件settings.json 中搜索 files.associations ,里面添加 "*
2019-02-18
2120
开发工具
查看更多
前言 早期桌面应用的开发主要借助原生 C/C++ API 进行,由于需要反复经历编译过程,且无法分离界面 UI 与业务代码,开发调试极为不便。后期出现的 QT 和 WPF 在一定程度上解决了界面代码分离和跨平台的问题,却依然无法避免较长时间的编译过程。近几年伴随互联网行业的迅猛发展,尤其是 NodeJS、Chromium 这类基于 W3C 标准开源应用的不断涌现,原生代码与 Web 浏览器开发逐步走向融合,Electron 正是在这种背景下诞生的。
electron Electron 是由 Github 开发,通过将Chromium和NodeJS整合为一个运行时环境,实现使用 HTML、CS
2019-01-26
3480
electron
查看更多
如何引用react 单页面直接使用react.js文件很简单,只需要像引入普通js文件一样,通过script标签引入即可
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.1
2019-01-08
1814
javascript
查看更多
go语言中的 Timers 和 Tickers go语言中对某段业务逻辑在未来某一时刻执行或以一定时间间隔周期性执行的需求提供了支持;
timer 可以在未来某一时间发生;
ticker 可以指定时间间隔周期发生.
Timers的使用 Timer表示在未来某一刻执行仅一次的事件
一旦时间到达预设时期,触发程序执行并且 timer 会调用 Stop() 函数停止再次运行.
/*
* @Author: your name
* @Date: 2021-01-14 16:29:13
* @LastEditTime: 2021-01-14 17:03:54
* @LastEditors: P
2018-12-23
1678
go
查看更多
react vue 相同点 以虚拟dom和diff算法为核心,通过操作数据来操作dom。
虚拟dom将2次数据改变的dom树结构生成2个js对象,以diff算法比较2个对象的异同点,若相同,则不更新dom;
若遍历到某一个节点时,发现异同点,则停止diff算法,更新该节点的所有子节点的dom结构.
1,都是用了Virtual DOM。
2,都提供了响应式和组件化的视图组件。
3,都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关库。
react vue 不同点 vue通过getter、setter监听数据数据变化,react通过比较引用的方式监听数据变化,需要使用Pure
2018-11-09
2025
react
查看更多
什么是 IDEA IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境;
IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的;
IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主;
它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言.
如何安装 IDEA 破解版 本文有
2018-10-26
1318
Java
查看更多
下载地址 百度网盘链接: https://pan.baidu.com/s/1TvMYmO0BvKE-tr-VMRkyTg
密码: gpot
打开镜像文件 打开dmg镜像文件,将“IntelliJ IDEA”拖入到“Applications”应用文件夹中进行安装;
安装完成不要运行 回到安装镜像文件的界面;
打开“Crack”文件夹,将文件夹目录下的“JetbrainsCrack.jar”复制到软件的安装目录下,
mac默认目录为 【Application/IntelliJ IDEA.app/Contents/bin】
编辑idea.vmoptions文件 在【Application/In
2018-10-19
1907
Java
查看更多
前言 我们在书写代码的时候,
经常会用到eslint来约束代码规范,
这样团队开发或者后期维护都省了很多烦恼.
markdown书写时一样有这样的问题,
那么我们如何来约束markdown的书写规范呢.
今天介绍一款 vscode 的插件 markdownlint
https://github.com/DavidAnson/markdownlint
vscode 直接搜索安装插件 markdownlint
当你在vscode中书写markdown文本时,不符合规范的内容就会有黄色波浪线来提示及时修正.
语法规范提示内容 MD001 - Heading levels should only i
2018-09-11
15500
开发工具
查看更多
下载安装jdk 官网去下载jdk:
https://www.oracle.com/index.html 进入官网,按照如下步骤进行下载
本文以jdk11为例
选择下载 mac 版本
双击安装
配置环境变量 查看是否安装成功:
java --version
显示如下,表示安装成功.
$ java --version
java 11.0.3 2019-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3
2018-09-09
2193
Java
查看更多
工程师的效率差异 对工程师来说经常会有明显的效率差异,有时一天能搞定好几个模块,顺带加了好几个新的技能点,而有时一个简单的功能投入了两三天还和之前没什么区别。
虽然任务并不复杂,但忍不住会聊微信,刷微博,上QQ,即使硬着头皮去做,往往效率也不如意,甚至引入一些新的低级 Bug。
这个差异与技能水平和工作态度无关,在绝大多数工程师身上都会看到.
什么因素影响效率 执行力崩溃 当任务单一时大家的效率往往很高,集中精力一天的时间把登录模块写出来,这个对绝大多数同学没有太大的心理负担。
但是现实情况并不尽如人意,尤其创业公司前期;
需求不断变化,数据结构来回改动,人员紧张,正在开发一个紧急模块,线上
2018-08-22
1800
开发工具
查看更多
创建自己的项目 我们用简单的 node.js web项目输出 helloworld 为例.
项目目录:
npm start app.js 启动项目;
app.js 代码
const Koa = require('koa');
const app = new Koa();
const main = ctx => {
ctx.response.body = 'Hello World';
};
app.use(main);
app.listen(3000);
编写dockerfile FROM node:8.4
COPY . /app
WORKDIR /app
RUN ["n
2018-08-20
1682
Docker
查看更多
什么是Docker 如今的云计算就好比大货轮,docker就是集装箱,一个个封闭式的箱体可以堆放再货轮上,我们不关心箱体里装的是什么货物;
我们这实际开发中,不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,很麻烦,还会造成一些冲突.
比如IIS和Apache访问端口冲突,这个时候你就要隔离.net开发的网站和php开发的网站.
常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高.
docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小
2018-08-18
1402
Docker
查看更多
#内置数据类型
java语言提供了八种基本类型;
六种数字类型(四个整数型,两个浮点型);
一种字符类型,还有一种布尔型.
byte: byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
short: short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(
2018-07-15
1365
Java
查看更多
什么是 ArrayList ArrayList 类位于 java.util 包中;
是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素;
它继承了 AbstractList ,并实现了 List 接口.
语法格式 import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
E为泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型
objectName:
2018-07-06
1496
Java
查看更多
前言 当你通过brew安装软件的时候,
发现一只卡在Updating
Updating Homebrew...
这个时候有俩种办法来应对
找国内的源Updating Homebrew
brew install 时不要 update
切换国内的源 //替换brew源
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
//替换homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
gi
2018-05-20
2741
开发工具
查看更多
final 保留字概述 final关键字在java中非常重要,它可以应用于类、方法以及变量;
final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。
final 的含义 final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量;
一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误.
final 定义的变量 凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量;
final变量经常和static关键字一起使用
2018-05-15
1390
Java
查看更多
什么是redis 穿透 前面我们有一篇文章介绍了 redis 下的雪崩已经一些解决办法 redis缓存造成雪崩怎么办,点击查看
今天我们再来看下redis下的穿透是什么?
顾名思义:穿透就是把一个容器或者保护罩击穿.
当一个请求过来,我们会根据参数去匹配redis缓存数据;
如果没有找到缓存结果,我们才会接着去请求DB.
那么问题来了:
当成批的并发请求过来,同时去请求一个 redis 缓存中不存在的数据,会发生什么要的效果?
是不是想到了雪崩?
当缓存不能命中,说明我们要去DB上查找数据,而这个并发直接去打DB,真的有点雪崩的意思.
会出现什么要的效果,我们基本想到了.
为什么会有批量并
2018-04-11
1402
redis
查看更多
static 概述 在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,只要程序在运行,那么这块内存就会一直存在;
static 定义的类成员 可以直接访问 在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是用static修饰的成员可以通过类名加“.”进行直接访问.
static 独立于类的其他成员 任何实例共享 static修饰的成员变量和成员方法独立于该类的任何对象;
它不依赖类
2018-04-08
1429
Java
查看更多
channel Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。
它的操作符是箭头 <-
ch <- v // 发送值v到Channel ch中
v := <-ch // 从Channel ch中接收数据,并将数据赋值给v
(箭头的指向就是数据的流向)
就像 map 和 slice 数据类型一样, channel必须先创建再使用:
ch := make(chan int)
类型 Channel类型的定义格式如下:
ChannelType = ( "chan" | "ch
2018-02-20
2420
go
查看更多
什么是redis雪崩 redis 缓存在同一时间失效,导致请求直接从物理数据库中读取数据,而针对一些热门并发数据,
如果在同一时间缓存全部失效,导致并发过来,物理数据库承担不住大并发请求而导致系统崩溃,就是redis雪崩.
什么情景下会出现这种情况 比如微博热搜,app首页数据已经电商秒杀活动商品等等.....
而这些数据一般情况下是定时任务来创建redis缓存;
比如定时任务执行一次,把热门数据缓存起来,并且设置统一生效时间2小时;
而2小时后,正好面临一场秒杀活动;
我们试想一下,
2小时后的缓存全部失效,这时突然一个高并发请求进来,本来redis能抵抗80%并发请求,结果因为全部失效导
2018-02-19
1563
redis
查看更多
Mac 键盘符号和修饰键 ⌘ ——> Command
⇧ ——> Shift
⌥ ——> Option
⌃ ——> Control
↩︎ ——> Return/Enter
⌫ ——> Delete
⌦ ——> 向前删除键(Fn + Delete)
↑ ——> 上箭头
↓ ——> 下箭头
← ——> 左箭头
→ ——> 右箭头
⇞ ——> Page Up(Fn + ↑)
⇟ ——> Page Down(Fn + ↓)
⇥ ——> 右制表符(Tab键)
⇤ ——> 左制表符(Shift + Tab)
⎋ —
2018-01-22
1346
Java
查看更多
什么是mvvm模式 m => model 模型 ,也就是数据
v => view 视图, 也就是页面dom
vm => view and model ,这可以理解成我们常说的 双向绑定, 视图可以影响数据(v -> m) ,数据也可以影响视图 (m -> v)
所以我们可以很明显的看到mvvm的特性 数据双向绑定
react 是什么 react 本身只是一个函数,
ui = render(data)
一个 dom 拼接工具,把数据拼成新 dom 替换旧 dom .
这样看来 react 只有视图,连状态都不存在,更不会有双向数据绑定.
react 结合状态管理
2018-01-10
2248
react
查看更多
list 个双链表(doubly linked list)
如何遍历链表,
其中 l 为 *List :
for e := l.Front(); e != nil; e = e.Next() {
//链表的每一个元素中通过Next()指针指向下一个元素,直至遍历完成
}
代码:
package main
import (
"fmt"
"container/list"
)
func main() {
l := list.New()
l.PushFront(1)
l. PushBack(2)
l. PushBack(3
2018-01-03
1668
go
查看更多
char charAt(int index) 返回给定位置的代码单元。除非对底层的代码单元感兴趣, 否则不需要调用这个
方法。
int codePointAt( int Index) 5.0 返回从给定位置开始的码点。
int offsetByCodePoints(int startlndex, int cpCount) 5.0 返回从 startlndex 代码点开始, 位移 cpCount 后的码点索引。
int compareTo(String other) 按照字典顺序, 如果字符串位于 other 之前, 返回一个负数; 如果字符串位于 other 之
后, 返回一个正数; 如果两
2017-12-20
1493
Java
查看更多
java中的集合类Collection Collection是最基本的集合接口;
一个Collection代表一组Object,即Collection的元素;
它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:
添加、删除、清空、遍历(读取)、是否为空、获取大小等,如下语法.
语法 public interface Collection<E> extends Iterable<E> {}
iterator接口 不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中
2017-12-05
1411
Java
查看更多
docker 构建镜像 获取镜像 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像
从 Docker 镜像仓库获取镜像的命令是
docker pull
格式 docker pull [选项] [Docker Registry 地址[:端口号]/] 仓库名[:标签]
# 默认官方镜像库拉取,latest 标签
$ docker pull ubuntu
# 指定版本标签
$ docker pull ubuntu:18.04
# 指定仓库域名(默认官方仓库)
$ docker pull library/ubuntu
# 第三方服务商或私有
2017-10-20
1513
Docker
查看更多
语义化标签 HTML 5的革新之一:语义化标签.
在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义。(即使我们用css样式的id和class形容这块内容的意义)。这些标签只是我们提供给浏览器的指令,只是定义一个网页的某些部分。但现在,那些之前没“意义”的标签因为因为html5的出现消失了,这就是我们平时说的“语义”
如上图那个页面结构没有一个div,都是采用html5语义标签.
但是也不要因为html5新标签的出现,而随意用之,错误的使用肯定会事与愿违;
所以有些地方还是要用div的,就是因为div没有任何意义的元素,他只是一个标签,仅仅是用来构建外观和结构
2017-10-11
1548
html5
查看更多
模拟一个枚举类 日常我们遇到用一个静态类来定义常量
public class Weekday {
public static final int SUN = 0;
public static final int MON = 1;
public static final int TUE = 2;
public static final int WED = 3;
public static final int THU = 4;
public static final int FRI = 5;
public static final int
2017-09-05
1506
Java
查看更多
定义 String是不可变字符
StringBuffer是可变的字符
StringBuilder也是可变的字符
StringBuffer和StringBuilder的区别 StringBuffer对象是线程安全的,这意味着StringBuffer对象可以同时被多个并行线程修改,因为它所有的方法都被声明为"synchronized(同步)";
StringBuilder类是JDK1.5版引入的非线程安全的类,这意味着它的所有方法都是非同步方法;
因此,在单一模型的应用中,我们应该使用StringBuilder,这样对象不会有锁定和解锁,这样性能就会增加;
如何选择Strin
2017-07-22
1425
Java
查看更多
Mac键盘符号和修饰键说明 ⌘ Command
⇧ Shift
⌥ Option
⌃ Control
↩︎ Return/Enter
⌫ Delete
⌦ 向前删除键(Fn+Delete)
↑ 上箭头
↓ 下箭头
← 左箭头
→ 右箭头
⇞ Page Up(Fn+↑)
⇟ Page Down(Fn+↓)
Home Fn + ←
End Fn + →
⇥ 右制表符(Tab键)
⇤ 左制表符(Shift+Tab)
⎋ Escape (Esc)
编辑 Control + Space 基本的代码补全(补全任何类、方法、变量)
Control + Shift + Space 智能代码补全(过滤器方法列
2017-07-11
1390
Java
查看更多
什么是java中的抽象方法 抽象方法是一种特殊的方法:
它只有声明,而没有具体的实现
例如:
abstract void eat();
上面定义了一个方法 eat() ,有修饰关键词 abstract ,而且只有方法签名,没有方法的具体实现,
这就是一个java中的 抽象方法.
我们可以看到关键词 abstract 前面再没有任何修饰关键词 [ public , protected 或者 private ]
为什么不能有修饰关键词,我们留到下面再讲.
什么是java中的抽象类 一个类含有抽象方法,则称这个类为抽象类
抽象类必须由关键词 abstract 修饰;
我们来看一个抽象类的示例:
2017-06-21
1325
Java
查看更多
什么是java中的块级作用域 一对大括号括起来的代码区域叫做一个块级作用域;
{...} 在块级中定义的变量被称作局部变量;
局部变量的生命周期:从被定义的位置开始,到本块结束.
注意事项
一个块可以嵌套在另一个块中
子块可以访问父块中的变量的
父块不能访问子块的变量
子块不能定义与父块同名的变量
在不嵌套的块中可以定义同名的变量;
public class com.yijiebuyi
{
public static void main(String args[])
{
{
int k = 1;
2017-04-19
1925
Java
查看更多
什么是哈希算法 区块链中每个区块都有一个唯一的哈希标识,被称为区块哈希,区块通过记录上一个区块的哈希来指向上一个区块.
这里说说的哈希算法,又称散列算法,它是一个单向函数,可以把任意长度的输入数据转化为固定长度的输出.
我们对下面的字符串求哈希值:
采用SHA-256算法:
yijiebuyi.com
f4353d56fc3482fe1acd7456b7431acc9dbaa252a82dc1293161ab4fd26368e5
yijiebuyi.com
bea4b45352c6101f2c2a7d47ec024b3d7c50a72e38e611b5b3c0d9d33b904983
上
2017-04-15
1778
区块链
查看更多
概述 容器技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。
由于隔离的进程独立于宿主和其它的隔离的进程,因此称为容器。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。
使得 Docker 技术比虚拟机技术更为轻便、快捷。
通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用级别的一次封装,到处运行
docker 组成
镜像 Image
容器 Container
仓库 Repository
镜像 Image
Docker 镜像是 一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还
2017-03-09
1462
Docker
查看更多
前段时间写过一篇关于showdown和showdown-toc插件自动生成目录的博客 ⬅️点击查看
为什么要改进
showdown-toc作为专门为showdown开发的 toc 插件,搭配使用都非常方便
安装showdown ,showdown-toc
toc插件集成到showdown代码中
const Showdown = require('showdown');
const showdownToc = require('showdown-toc');
const showdownHighlight = require("showdown-highlight");
const to
2017-02-06
2916
开发工具
查看更多
markdown如何转化成html
markdown 文本转化成 html 成熟的工具有不少,
node 开源库中有
markdown-it
showdown
markdown-to-html
marked
markdown
上面的工具各有优势,自行google开源地址,找到一款最适合自己的.
本人博客一直是markdown编辑器撰写,
然后,一直再琢磨如何通过标题来自动生成内容目录,
造轮子的事情还是留给大牛们,
我们能把轮子使用好也是对大牛们的敬仰和支持.
markdown-it 介绍 开源地址: https://github.com/markdown-it/markdown-it
2017-01-22
5836
开发工具
查看更多
什么是node.js 的中间件 在整个web请求的生命周期中,
客户端request 过来一个请求,
接着服务器端做出响应处理,
最后response结果给客户端.
上面这个请求过程中,其中服务器端做出响应处理时,会有一系列处理单元,这些处理单元可以简单的理解成中间件.
node.js中间件:
它泛指一种设计模式、一系列的处理单元、过滤器和处理程序;
以函数的形式存在,形成一个异步队列,来完成对数据的预处理和后处理;
它的优点在于灵活处理业务逻辑中的单元模块;
使用中间件我们用极少的操作就能得到一个插件,用最简单的方法就能将新的过滤器和处理程序扩展到现有的系统上.
Express 中间件实现
2016-12-26
1769
nodejs
查看更多
项目名 命名规范 全部小写
如:yijiebuyi , helloworld
package 包名命名规范 强烈推荐使用公司或机构的顶级域名为包名的前缀;
包名的前几个为固定名称, 如果是网站的话,采用网站的域名的反写;
package 包名全部为小写字母,以符号(. )来分隔, 但是不能包含*号,具有实际的区分意义.
如:
com.yijiebuyi.blog //博客系统
com.yijiebuyi.wechat //微信H5服务站
要求
有意义的名词
传达其用途
结合模块名来命名
使用范例 应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页
2016-10-19
1581
Java
查看更多
Markdown是一种轻量级标记语言,创始人为約翰·格魯伯(英語:John Gruber)。
它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。 这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。[维基百科]
markdown可以让你专心写作而摆脱排版的困扰.
一些常用语法要花几分钟时间来记住.
标题
一个#表示一级标题,
几个#号对应表示几级标题,
最多支持六级标题.
注:标准语法一般在#后跟个空格再写文字
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果:
一级标题
2016-03-18
2418
开发工具
查看更多
ssh连接超时问题解决方案: 修改server端的 etc/ssh/sshd_config 配置 ClientAliveInterval 7200 #server每隔7200秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 30 #server发出请求后,客户端没有响应得次数达到30,就自动断开连接,正常情况下,client不会不响应
重启配置:
service sshd reload
$TMOUT系统环境变量 配置 sudo nano /etc/profile
在最后一行增加
export TMOUT=1800(单位秒)
保存并
2016-03-18
1528
linux
查看更多
find命令搜索文件
find命令非常高效,并且使用简单.
find命令来自unix,OS X和Linux系统同样支持该命令.
find命令格式: ** find 文件路径 参数**
这用户目录下查找 查找文件名中包含 redis.conf 的文件
find ~ -name "redis.conf*"
-name 是指定参数
redis.conf* *号匹配任意字符,说明以 redis.conf 开头的文件
指定文件目录下查找 在特定的文件夹中寻找特定的文件,比如 这 / 目录下查找 redis.conf开头的文件
find ~ -name "redis.conf*"
m
2016-02-09
1487
linux
查看更多
博客经过几次改版,但是阅读性一直不太好,让人读起来比较累,分不清主次.
所以周末尝试把之前的百度编辑器换成了 markdown 编辑器,希望在阅读性方面有提升.
博客的几处改动
因为之前的博客是html格式,现在是 markdown 格式,所以在首页提取缩略内容的功能去掉了.
首页标题字号调小了
列表页标题下方增加了博客分类
内容页的渲染为了兼容以前的老博客,既可以渲染 html 博文,也可以渲染 markdown 博客.
代码视图变动 function(){
console.log('欢迎光临一介布衣博客');
}
单行代码视图 alert('一介布衣');
关于mar
2015-09-13
4410
杂谈
查看更多
在使用mac 的时候,是不是常常遇到这样一种情况.你想创建一个文件,可是找不到入口.....如果你想再打开一个 finder ,该怎么办?在 finder 图标上右键, 新建 finder 窗口,如果想让它想 chrome 一样新建标签该多爽....那么今天推荐的这个插件可以满足你,而且免费哦.请自己用 google 百度一下 'XtraFinder'查看 XtraFinder 插件提供的扩展功能,根据自己的喜好随心设置.出自:XtraFinder 让你的mac finder 更有特性扩展更人性出自:XtraFinder 让你的mac finder 更有特性扩展更人性
=====下面开始进入
2015-09-11
7724
mac
查看更多
这几天宅在家里享受胜利日的假期,连续2天下雨,出不去....无聊之时会玩一玩 zsh ,确实是个好东东,作为一个攻城狮的你,必须要去玩转一下.之前介绍了如何配置利用oh-my-zsh 来配置你的zsh 及 zsh 通过修改配置文件,皮肤模板来定制化属于你的shell上面的传送链接你可以直接点击查看 (这句话好像是废话,忽略吧)今天分享几个 zsh 使用小技巧:如果你不知道该如何使用 zsh ,那么你之前如何使用的 bash ,现在就怎么使用.没错,这就是一个技巧.zsh 360°无死角全兼容 bash ,之前怎么写,现在就怎么写. 这才叫酸爽!按 tab 键补全之前在 bash 环境下.如果我
2015-09-05
12595
javascript
查看更多
今天和大家分享一个工具 pandocgithub地址:https://github.com/jgm/pandoc 它被称作是一款神器为什么这样说:标记语言经过一路发展,貌似从最初的复杂架构中渐渐的又回归到了简洁.不得不提的是 2004年发展起来的 markdown 语法,简洁清爽,非常受人欢迎,尤其是不会操作word的用户,不会书写html的用户,简直就是福音.但是问题来了, markdown 语法就算非常简洁,我潇潇洒洒写了5万字的小说,最后这个 md 文件如何变成 word文档(或许是受markdown 限制,打印问题,或者出版社要求) 或者如何变成一个pdf文档.......(关于mar
2015-05-18
21622
nodejs
查看更多
markdown 这种轻量级编辑工具确实给像我这种不会排版的人带来很多亮点,你只需要注重你的内容书写即可,语法也非常简单,常用就是下面这几种,好记好使唤,简单归纳总结一下:文字:*斜体***加粗**_斜体___加粗__上面2种方式都适用.删除线 (像这样 ~~悲剧啊,我被删除了~~)链接:[一介布衣](http://www.yijiebuyi.com)Headers:从#到######表是\<h1>到\<h6>#This is \<h1>##this is \<h2>###### this is <h6>List:1. 1112. 2
2014-12-01
6027
开发工具
查看更多
html中的加粗/加重 在网页制作过程中,难免要遇到针对文本的加粗,加重等情况.
但是html中有好几个可以把文本加粗加重的标签,尤其HTML5出现后,
我们常见的加粗/加重标签有:
strong
em
i
b
strong strong 加粗加重显示,
要比 em 更加强调一些,
比如全文要突出的关键词,
可以让用户一眼就看到的重点内容,
它更加强调的是重要突出的关键词的内容,而不仅仅是针对样式上的加粗需求.
strong 全局强调关键词
em em 默认斜体不加粗显示,
一般着重要表示的内容,
它字体没有 strong 粗黑,
所以一般用户不会一眼注意到em 标签的内容.
em 局部
2014-09-09
1568
html5
查看更多