cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索
12月
15
更新于
12月15
2018
知识

使用命令行激活windows10专业版

发表于 2018-12-03 | 热度 ℃
| 字数统计: 262 (字) | 阅读时长: 1 (分钟)

以管理员的身份运行cmd

  1. 先卸载密钥
    1
    slmgr.vbs /upk
  • 此时弹出窗口显未“已成功卸载了产品密钥”。
  1. 安装密钥
    1
    slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
  • 弹出窗口提示:“成功的安装了产品密钥”。
  1. 设置计算机名
    1
    slmgr /skms cosyer的个人电脑
  • 弹出窗口提示:“密钥管理服务计算机名成功的设置为cosyer的个人电脑”。

阅读全文 »
12月
15
更新于
12月15
2018
JS

为什么react和immutable成为了好基友

发表于 2018-11-21 | 热度 ℃
| 字数统计: 2,418 (字) | 阅读时长: 11 (分钟)

工作中,React社区推崇搭配一起使用Immutable,就像咖啡牛奶伴侣一样。众所周知React的性能优化我们可以优化组件的嵌套层级,

避免不必要的重绘,以及shouldComponentUpdate来判别组件是否会因为当前属性(props)和状态(state)变化而导致组件输出变化。

一提到React,大家第一时间就想到的虚拟DOM(Virtual DOM)和伴随其带来的高性能(在虚拟dom上进行节点的更改最后在反映到真实dom上)。

但是React提供的是声明式的API(declarative API),好的一方面是让我们编写程序更加方便,但另一方面,却使得我们不太了解内部细节。


阅读全文 »
12月
15
更新于
12月15
2018
CSS

Sass学习笔记

发表于 2018-09-01 | 热度 ℃
| 字数统计: 1,068 (字) | 阅读时长: 5 (分钟)

简介

Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。


阅读全文 »
12月
15
更新于
12月15
2018
JS

js判断浏览器类型和访问来源

发表于 2018-09-10 | 热度 ℃
| 字数统计: 528 (字) | 阅读时长: 3 (分钟)

userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。

一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。

例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。

注:用户代理头:user-agent header。


阅读全文 »
12月
15
更新于
12月15
2018
知识

java -jar与nohup

发表于 2018-11-13 | 热度 ℃
| 字数统计: 736 (字) | 阅读时长: 3 (分钟)

java程序员,经常会遇到这样一个问题,打个jar包,测试或者上线生产,于是乎面临的选择来了,java –jar or nohup? 下面我来扒一扒:

java -jar a.jar &

直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。

这种情况适合短时间测试用。

nohup java -jar a.jar &

hangup :(挂断),终端退出时会发送 hangup 信号来通知其关闭所有子进程。

nohup :(不挂断,忽略挂断信号)。

nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上”&”来将命令同时放入后台运行,也可用”>filename2>&1”来更改缺省的重定向文件名。

这种情况适合在生产环境长时间运行。

nodejs应用在linux上运行

使用场景

  • forever管理多个站点,每个站点访问量不大,不需要监控。
  • supervisor是开发环境用。
  • nodemon 是开发环境使用,修改自动重启。
  • pm2 网站访问量比较大,需要完整的监控界面。
  1. forever

    1
    2
    3
    4
    5
    6
    npm install -g forever
    forever start index.js -o out.log -e err.log
    forever list
    forever stop index.js [id]
    forever stopall
    forever restartall
  2. supervisor 热部署

    1
    2
    npm install -g supervisor
    supervisor app.js // 文件有改动会立即重启node模块
  3. nodemon

    1
    2
    npm install -g nodemon
    nodemon app.js
  4. nohup

    1
    2
    nohup node index.js &
    nohup node index.js > myLog.log 2>&1 &

nohup问题:

但是有时候在这一步会有问题,当把终端关闭后,进程会自动被关闭,查看nohup.out可以看到在关闭终端瞬间服务自动关闭。 有个操作终端时的细节:当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端; 而我是每次在nohup执行成功后直接点关闭程序按钮关闭终端。所以这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。

  1. 高大上的pm2

特性:

  • 内建负载均衡(使用Node cluster 集群模块)
  • 后台运行
  • 0秒停机重载,维护升级的时候不需要停机
  • 具有Ubuntu和CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

使用:

1
2
3
4
5
6
7
8
9
npm install -g pm2
pm2 start app.js -o out.log -e err.log
pm2 stop app.js
pm2 restart app.js
pm2 list
pm2 descibe [id]
pm2 monit // 查看cpu和内存使用
pm2 logs // 实时集中log处理
pm2 web // 浏览器查看
12月
15
更新于
12月15
2018
杂谈

侠之大者,为国接盘

发表于 2018-06-16 | 热度 ℃
| 字数统计: 2,022 (字) | 阅读时长: 7 (分钟)

炒房兴邦,实业误国


阅读全文 »
12月
15
更新于
12月15
2018
杂谈

Hello World - 热爱编程的普通人,顺便以此为生。

发表于 2018-04-01 | 热度 ℃
| 字数统计: 282 (字) | 阅读时长: 1 (分钟)

之前一直在博客园写博客,但随着技术的发展,博客园的样式和自定义内容远远不能达到我所期望。故此决定迁移博客,希望能总结归纳好自己的技术体系,拓宽拓深技术栈,重新开坑O(∩_∩)O哈哈~。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.


阅读全文 »
12月
15
更新于
12月15
2018
JS

JS执行顺序-函数声明提升、匿名函数、函数表达式

发表于 2018-06-13 | 热度 ℃
| 字数统计: 649 (字) | 阅读时长: 3 (分钟)

JS 是按照代码块进行 编译、执行 的。


阅读全文 »
12月
15
更新于
12月15
2018
JS

classNames在react上的应用

发表于 2018-08-23 | 热度 ℃
| 字数统计: 621 (字) | 阅读时长: 3 (分钟)

前言

在 Vue 里有一个动态的 class 语法,很好的根据条件动态设置 class。例如:

1
<div class="button" :class="{ active: show }"></div>

就是当 show 为 true 时,此标签被赋予 active 样式。

在 React 要实现这样功能,可能会这样做:

1
<div className={`button ${show ? 'active' : ''}`}></div>

注意到,这里只有一个属性判断,如果有多个时会显得非常麻烦,那么现在使用 ClassNames 这个库来解决这个问题。


阅读全文 »
1…1516
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1