
依次类推,看你的操作系统用什么包管理,比如推出如果你是用brew 安装的 node 需要用 brew先删除一次
进入 /usr/local/lib 删除所有 node 和 node_modules文件夹
进入 /usr/local/include 删除所有 node 和 node_modules 文件夹
检查 ~ 文件夹里面的"local" "lib" "include" 文件夹,然后删除里面的所有 "node" 和 "node_modules" 文件夹
可以使用以下命令查找
[plain] view plain copy print?
进入 /usr/local/bin 删除 node 的可执行文件
以下步骤可选:
删除: /usr/local/bin/npm
删除: /usr/local/share/man/man1/node.1
删除: /usr/local/lib/dtrace/node.d
删除: rm -rf /home/[homedir]/.npm
删除: rm -rf /home/root/.npm
扫码订阅《如何制作一门挣钱的网络视频课》众筹开始通知
require('url-search-params-polyfill'); const axios = require('axios'); const querystring = require('querystring'); var express = require('express'); var router = express.Router(); /* GET users listing. */ router.get('/', function(req, res, next) { res.send('respond with a resource'); }); router.get('/login', function(req, res, next) { const url = 'https://github.com/login/oauth/authorize' + '?client_id=' + encodeURIComponent( GH_CLIENT_ID ) + '&redirect_uri=' + encodeURIComponent( GH_CALLBACK ); res.render( 'login' , {url} ); }); router.get('/ghcallback',async (req,res)=> { if( !req.query.code ) res.status(500).send('bad code!'); console.log("in callback"); let params = new URLSearchParams(); params.append( "client_id" , GH_CLIENT_ID ); params.append( "client_secret" , GH_CLIENT_SECRET ); params.append( "code" , req.query.code ); params.append( "redirect_uri" , GH_CALLBACK ); console.log("sending...") const {data} = await axios.post( 'https://github.com/login/oauth/access_token', params); console.log("end") if( data ) { console.log("got acode",data); const acode = querystring.parse(data).access_token; const user = await axios.get( 'https://api.github.com/user' , { headers: { Authorization: 'Bearer '.concat(acode) } } ); console.log("got user info",user.data); res.json(user.data); res.end(); } }); module.exports = router;
在 chrome 浏览器输入 chrome://flags/
然后输入 cookie 关键字,将图中两项设置为 disabled
请扫码加入,然后按群公告说明测试。
感谢大家的支持,本周众筹已经达标。
从下周开始,我们将开始进入课程的准备工作。由于本次是两个课程,工作量比较大,所以原来 8 月制作、9 月上线的时间表不做变更。方糖币将在月底众筹结束后统一发放。
课程制作的进度和花絮我将实时发布在微博,大家可以通过 #Server酱实战课# 话题查看。
再次感谢大家。
INSERT INTO cpquery_result ( `apply_no`, `date`, `zhuluxiangmuxinxi`, `shenqingren`, `famingren`, `lianxiren`, `dailiqingkuang`, `youxianquan`, `shenqingguojijieduan`, `zhuluxiangmubiangeng`, `yingjiaofeixinxi`, `yijiaofeixinxi`, `tuifeixinxi`, `zhinajinxinxi`, `shoujufawenxinxi` ) SELECT `apply_no`, `date`, `zhuluxiangmuxinxi`, `shenqingren`, `famingren`, `lianxiren`, `dailiqingkuang`, `youxianquan`, `shenqingguojijieduan`, `zhuluxiangmubiangeng`, `yingjiaofeixinxi`, `yijiaofeixinxi`, `tuifeixinxi`, `zhinajinxinxi`, `shoujufawenxinxi` FROM cpquery_result_temp
冷熊简历样式:
body { height: 100%; max-height: 100%; font-family: "Hiragino Sans GB","Microsoft YaHei","微软雅黑","SourceHanSans",Georgia,tahoma,arial,simsun,"宋体"; font-size: 3.4rem; line-height: 1.8em; color: #3A4145; zoom:0.8; } html, body { height: 100%; } .site-head { position: relative; display: table; width: 100%; height: 300px; margin-bottom: 5rem; text-align: center; color: #fff; background: #303538 no-repeat center center; background-size: cover; } .site-head h1 { font-size: 40px; line-height: 44px; } .site-head .subtitle { font-size: 28px; } .vertical { display: table-cell; vertical-align: middle; } .content { max-width:768px; margin-left: auto; margin-right: auto; padding:20px; } .yue { font: 400 18px/1.62 "Xin Gothic", "Hiragino Sans GB", "Droid Sans Fallback", "Microsoft YaHei", sans-serif; color: #444443; } .windows .yue { font-size: 18px; font-family: "SimSun", sans-serif; } .yue ::-moz-selection { background-color: rgba(0,0,0,0.2); } .yue ::selection { background-color: rgba(0,0,0,0.2); } .yue h1, .yue h2, .yue h3, .yue h4, .yue h5, .yue h6 { font-family: "Xin Gothic", "Hiragino Sans GB", "Droid Sans Fallback", "Microsoft YaHei", "SimSun", sans-serif; color: #222223; font-weight: lighter; } .yue h1 { /*font-size: 1.8em;*/ font-size: 1.8em; margin: 0.67em 0; } .yue > h1 { margin-top: 0; font-size: 1.8em; } .yue h2 { font-size: 1.6em; margin: 0.83em 0; } .yue h3 { font-size: 1.2em; margin: 1em 0; } .yue h4, .yue h5, .yue h6 { font-size: 1.0em; margin: 1.6em 0 1em 0; } .yue h6 { font-weight: 500; } .yue p { margin-top: 0; margin-bottom: 1.46em; } .yue a { color: #111; word-wrap: break-word; text-decoration-color: rgba(0, 0, 0, 0.4); } .yue a:hover { color: #555; text-decoration-color: rgba(0, 0, 0, 0.6); } .yue strong, .yue b { font-weight: 700; color: #222223; } .yue em, .yue i { font-style: italic; color: #222223; } .yue img { max-width: 100%; height: auto; margin: 0.2em 0; } .yue a img { /* Remove border on IE */ border: none; } .yue figure { position: relative; clear: both; outline: 0; margin: 10px 0 30px; padding: 0; min-height: 100px; } .yue figure img { display: block; max-width: 100%; margin: auto auto 4px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .yue figure figcaption { position: relative; width: 100%; text-align: center; left: 0; margin-top: 10px; font-weight: 400; font-size: 14px; color: #666665; } .yue figure figcaption a { text-decoration: none; color: #666665; } .yue hr { display: block; width: 14%; margin: 40px auto 34px; border: 0 none; border-top: 3px solid #dededc; } .yue blockquote { margin: 0 0 1.64em 0; border-left: 3px solid #dadada; padding-left: 12px; color: #666664; } .yue blockquote a { color: #666664; } .yue ul, .yue ol { margin: 0 0 24px 6px; padding-left: 16px; } .yue ul { list-style-type: square; } .yue ol { list-style-type: decimal; } .yue li { margin-bottom: 0.2em; } .yue li ul, .yue li ol { margin-top: 0; margin-bottom: 0; margin-left: 14px; } .yue li ul { list-style-type: disc; } .yue li ul ul { list-style-type: circle; } .yue li p { margin: 0.4em 0 0.6em; } .yue .unstyled { list-style-type: none; margin: 0; padding: 0; } .yue code, .yue tt { color: #808080; font-size: 0.96em; background-color: #f9f9f7; padding: 1px 2px; border: 1px solid #dadada; border-radius: 3px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } .yue pre { margin: 1.64em 0; padding: 7px; border: none; border-left: 3px solid #dadada; padding-left: 10px; overflow: auto; line-height: 1.5; font-size: 0.96em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: #4c4c4c; background-color: #f9f9f7; } .yue pre code, .yue pre tt { color: #4c4c4c; border: none; background: none; padding: 0; } /*.yue table { width: 100%; border-collapse: collapse; border-spacing: 0; margin-bottom: 1.5em; font-size: 0.96em; } .yue th, .yue td { text-align: left; padding: 4px 8px 4px 10px; border: 1px solid #dadada; } .yue td { vertical-align: top; } .yue tr:nth-child(even) { background-color: #efefee; }*/ .yue table { margin: 2px 0 14px; color: #555; width: auto; border-collapse: collapse; box-sizing: border-box; } .yue table th, .yue table td { height: 32px; padding: 5px 14px 5px 12px; } .yue table td { border: 1px solid #f2f2f2; } .yue table th { border: 1px solid #72777b; border-top: 0; border-bottom: 0; background-color: #7b8184; font-weight: 300; color: #fff; padding-top: 6px; } .yue iframe { display: block; max-width: 100%; margin-bottom: 30px; } .yue figure iframe { margin: auto; } .yue table pre { margin: 0; padding: 0; border: none; background: none; margin: 0; } @media (min-width: 1100px) { .yue blockquote { margin-left: -24px; padding-left: 20px; border-width: 4px; } .yue blockquote blockquote { margin-left: 0; } .yue figure img { margin: 0 0 4px; } .yue figure figcaption:before { width: 25%; margin-left: 75%; border-top: 1px solid #dededc; display: block; content: ""; margin-bottom: 10px; } .yue figure figcaption { position: absolute; left: -172px; width: 150px; top: 0; text-align: right; margin-top: 0; } } .exp { font-size: 12px; color:#ccc; } .exp a { color:#ccc; }
case ':save': file_put_contents('saestor://todo/ttd-easy-save.json', v('todos')); file_put_contents('saestor://todo/ttd-easy-'.date('Y-m-d-H-i').'.json', v('todos')); $ret['js'] = "alert('Saved 🤠 ')"; break; case ':load': if ($new_todos = file_get_contents('saestor://todo/ttd-easy-save.json')) { $ret['js'] = "this.props.store.todo_load_base64('".base64_encode($new_todos)."')"; } else { $ret['js'] = "alert('No todo list found 🙃 ')"; } break;
追加了Node简版API。
没领课的快领课,没加群的快加群。你们都花钱了为啥不领啊,嘤嘤嘤 🤣 之前出错的有新的领取码看后边
变现课姐妹篇《程序员如何优雅地挣零花钱》2.0 版上线,点此阅读 http://r.ftqq.com/howto-make-more-money/ch00.html
请大家尽快领取课程,之前推送的链接有误,新的领取方式为菜单「服务入口」→ 「Next订单」(后文有图文教程)。稍后更新信息将通过网易云课堂私信通知发送啦。
软件变现微信交流群开通啦,欢迎加入:
领取码的查看方法:
在「方糖」服务号( fangtangchupin )中点击菜单「服务入口」→ 「Next订单」,查看订单记录。里边有提取码。复制以后,点开 网易云课堂 上的课程,点击购买,输入它,价格就会变成0。然后购买就好了。
这次是因为一个潜藏比较深的Bug,只有在多人群发时才会暴露出来 😂 给大家添麻烦了,非常抱歉。如果还有不能领取的请加我微信 easyatwx 反馈。参加预售的同学都有购买记录,一定会保证大家领到课的。
兑换码需要在4月27日前兑换完成,兑换完成后,课程本身是永久可看的。
下边的评论框要在电脑上用微博登录后才能用,所以反馈可以发这里 https://support.qq.com/products/134125
nginx 日志按时间读取
cat gelin_web_access.log | sed -n '/17\/Mar\/2020:00/,/17\/Mar\/2020:09/p' | more
cat gelin_web_access.log | sed -n '/17\/Mar\/2020:00/,/17\/Mar\/2020:09/p' > 2020-03-15
演示视频 → http://t.cn/A6zMbNum
接下来就将继续开发付费功能、添加从免费到付费的引导、添加各个环节转化率的数据统计。
、
祝大家周末快乐。
今天福利单词的pro版开始测试了,网址为 https://fox.ftqq.com 。
当前测试版包含的功能如下:
本周进行第一轮Bug修复和功能优化后,接下来我们将开始开发用户登录、付费等功能,打通收入渠道,为接下来的增长工作做准备。
产品反馈和讨论请点这里 。
测试了一下边做课程边做项目的进度,发现互相影响。所以改为了先完整的把项目做上线(全程录像),然后再回过头来做课程。预计的时间不变,四月初开始课程连载。
本周主要工作在产品部分。包括
商业模式画布的设计
用户画像
功能分期
Logo和原型的设计
增长用链接统计系统Linkey的设计和开发
以及背单词界面的布局和实现。
以上资料和源码将在项目正式上线后统一提供给大家。
下周将继续移动网页版的开发,大家周末快乐 🎈
一 服务器端配置
1.下载对应的版本 https://syncthing.net/downloads/
wget https://github.com/syncthing/syncthing/releases/download/v1.3.4/syncthing-linux-amd64-v1.3.4.tar.gz
2.解压并移动到bin目录
tar xzvf syncthing-linux* && rm -rf syncthing-linux*.tar.gz cd syncthing-linux* && cp syncthing /usr/local/bin
3.启动一次 syncthing 创建配置文件
syncthing
4.修改配置
sed -i 's/127.0.0.1/0.0.0.0/g' '/root/.config/syncthing/config.xml'
5.后台启动
nohup syncthing
访问 VPS 的8384端口,按提示进入settings中设置管理面板密码。
服务器端配置到此完成。
二 电脑端配置
1.下载安装电脑客户端 https://syncthing.net/downloads/
2.在 VPS 界面中点击右上角的「操作」选择「显示ID」,复制ID。
3.在电脑端的界面中右下角「添加远程设备」,填入ID。
4.点开添加的远程设备,「选项」、「共享」将指定文件夹共享给设备。
5.等一会儿,VPS 界面会提示有设备连接,是否通过。通过即可。
6.再等一下会提示是否接受共享目录,选是即可。
7.在左边的「文件夹」、「选项」、「版本控制」中可以开启版本控制,建议选择选择简单版本管理,会保存5次修改历史。
本来原计划 3月众筹、4月制作、5月上线连载。因为大家非常给力,在3月前众筹已经达标了,我们将整个进度表提前一个月,改为 3月制作、4月上线连载。
因为制作时间和课程质量正相关,所以还请大家耐心等待。
不过在整个制作过程中,我会通过微博实时更新进度。大家可以在微博关注「福利单词」这个话题( http://t.cn/A6hsEFhz )。
稍后的进度更新、课程上线领取通知也会在这里大家。感谢大家的支持。
LearnPlayer 直接从 WebTorrent 在遵守其授权协议的前提下修改而来。本来是自用,后来觉得用的人多资源会比较好找。
软件下载
https://share.weiyun.com/5xnbpKS
支持 Mac 和 Windows 64位。如果看不到,可能还在上传。
使用说明
字幕和取词
影视资源推荐
交流群