最近在研究二维码的生成,目前找到了javascript版本和php版本。

先来说说javascript版吧,其实就是一个jquery插件——jquery.qrcode,看了源码之后发现jquery.qrcode.js里面提供了2种生成二维码的机制:使用canvas或table。对于支持html5的浏览器使用canvas效率是非常高的,并且不会对服务器产生任何压力,客户端也不会有太多压力;可是如果为了兼容像IE8等浏览器,还是需要使用table方式。

判断浏览器是否支持canvas的代码:

function canvasSupport() {
    return !!document.createElement('canvas').getContext;
}

于是,写了这么一个在线生成二维码的demo,下载即用,如果将table改为canvas将会得到一个质的提升。

$('#qrcodeTable').qrcode({
    render  : "table",
    text    : utf16to8(str),
    width:"400",
    height:"400"
});

jquery二维码插件下载地址:

使用jquery.qrcode生成二维码(支持中文).zip

来说说php中怎样实现二维码,主要使用phpqrcode这个开源库:http://phpqrcode.sourceforge.net/

官方给的项目库比较大,个人只使用了phpqrcode.php这一个文件:
php生成不带logo的二维码.zip

可惜是phpqrcode.php并未实现生成带有logo的二维码,但是使用php的GD库函数在《php利用PHP QR Code生成二维码(带logo)》中已经实现了。

源码下载:
php生成带logo的二维码.zip

以上转载:http://blog.zhengshuiguang.com/php/qrcode.html

如何用jquery.qrcode.js插件在线生成二维码

在之前的一篇文章中我介绍了用php怎么生成二维码,今天我要说的是用jquery.qrcode.js前端生成二维码。

jquery.qrcode.js是一个纯浏览器生成QRcode的jQuery插件,它使用非常简单,生成的QRcode无需下载图片,并且不依赖第三方服务。实在是挺好用的。

官网地址:https://larsjung.de/jquery-qrcode/

其实在官方的API已经说的很清楚了,我这里只是做个简单的案例。

<div id="container"></div>
<script>
    $('#container').qrcode({
        // 渲染的方式 : 'canvas', 'image' or 'div'
        render: 'canvas',
        // 容错率 L-H 递增 level: 'L', 'M', 'Q' or 'H'
        ecLevel: 'H',
        // 大小
        size: 200,
// 圆角
radius: 0.5,
        // 背景色
        background: '#ffffff',
        // 内容
        text: 'https://m69w.com',
    });
</script>

效果如下:略

在线生成二维码 http://www.hehaibao.com/qr && https://github.com/hehaibao/php-qrcode
https://github.com/lrsjng/jquery-qrcode && demo源码
使用jquery.qrcode,在线生成二维码,支持中文,可设置LOGO版!【JS版】
使用PHPqrcode类库,在线生成二维码【PHP版】



不算教程了,写的太简单了,只是给自己备份而已。本来开博客的意义也是,担心哪一天硬盘也跟凯旋的一样挂掉,什么资料都没了。博客就是一个记录和备份。这个手记是制作过程的简单记录,简单体现了思路,有些连思路都没有记。

土豆视频5.2去广告破解缓存限制手记

1,破解缓存限制

smali_classes2\com\tudou\detail\fragment\VideoCacheFragment.smali
smali_classes2\com\tudou\detail\fragment\VideoCacheFragment$2.smali

修改关键字跳转0x7f0b00e4
2,创建快捷方式

com.tudou.android\smali\com\tudou\ui\activity\WelcomeActivity.smali
.method private addShortcut()V

改为空函数
3,去视频播放前广告

com.tudou.android\smali\com\youku\player\goplay\TaskGetVideoAdvUrl.smali

函数.method protected bridge synthetic doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
删掉这一句

invoke-direct {p0}, Lcom/youku/player/goplay/TaskGetVideoAdvUrl;->connectAPI()V

3,去启动广告(好几秒那个静态的)

com.tudou.android\smali\com\tudou\ui\activity\WelcomeActivity.smali
.method private excutePosterTask()V

改为空函数
首次启动那个花不溜丢的动画
搜索guide_video,找到ID,最后定位到还是这个文件里
简单的判断+跳转
4,去除启动首屏的渠道logo
方法好多啊,挨个说:
1)最笨的方法,用PS把logo改透明。
2)或者channel_name文件改为空(里面就是渠道特征码)
3)或者在

com.tudou.android\smali\com\tudou\ui\activity\WelcomeActivity.smali

.method private initView()V函数下根据渠道特征码显示渠道logo的的内容给删除
从:cond_1一直往下找一直到cond_12一堆都是。所以直接把跳转到cond_1的语句直接改为跳转到cond_13(表示不加logo)就可以了
5,去除titlebar的应用推荐和游戏推荐按钮
layout/index.title.xml中相应布局高度宽度改为0即可
6,去除“发现”频道
这个更简单了

layout/home_bottom_bar.xml

中将相应布局weight值改为0
还有个小毛病就是“精选”频道拉到最底下会提示进入发现频道,还有个箭头指过去……
找到资源文件,定位到布局

res\layout\index_item_foot.xml

爱怎么改怎么改都行了
7,屏蔽“我的”界面中“大家都在看”模块
Fiddler抓包知道访问网址为http://rec.api.3g.tudou.com/v5/user/rec_videos?pid=34d185b5c1336e16&_t_=1439828914&_e_=md5&_s_=d8af732769fef74e7eea4963abffafa1&guid=215fc3689204a7a3a5f6ce73ebbf64bf&ver=5.2&network=WIFI&operator=_46001
搜索关键词rec.api.3g.tudou.com,屏蔽相关网址即可
虽然这个网址是recommend,用于广告的,但是为了保险,其实可以只屏蔽“rec_videos”这个字段。
8,屏蔽搜索界面的“大家都在看”和下面的推荐

http://api.3g.tudou.com/v5/search/recommend?pid=34d185b5c1336e16&_t_=1439829729&_e_=md5&_s_=bed05ad375bd98eb1a578f9ad9783fdd&guid=215fc3689204a7a3a5f6ce73ebbf64bf&ver=5.2&network=WIFI&operator=_46001

和上面一样,搜索“search/recommend”,改为空即可
同时会出现“走神啦,点击屏幕重试”的提示,搜索这句提示,定位到layout/all_hint_layout.xml,各元素宽高字体大小都改为0.0dip
9,搜索框中默认的搜索推荐,加载自

http://api.3g.tudou.com/v5/home?pid=34d185b5c1336e16&_t_=1439831674&_e_=md5&_s_=70bcf672ad41e439bdc40c6d55502c7e&guid=bb5281c2dfeb44c6339b10586e09f6b8&ver=5.2&network=WIFI&operator=_46001&excludeNew=0&show_url=1&live=1

返回的值中有“search_area”字段,里面定义了两个子字段"search_adv": "大家都在搜", "search_word": "土豆映像季"
smali_classes2\com\youku\vo\SkipInfo.smali中找到这两个字段,改为空
这样的话,进入搜索界面,不会有“土豆映像季”这个关键词了,点击搜索按钮也会提示“搜索关键字不能为空”
但是主界面搜索框里仍然有这几个字。
最简单的方法是考虑通过修改布局实现去除。仍然是肉眼遍历所有图片资源,找到搜索按钮,定位到布局

res\layout\index_title_search.xml

textview那一段
10,视频详情页推荐
抓包

http://rec.api.3g.tudou.com/v4_4/album_rec?pid=34d185b5c1336e16&_t_=1439874368&_e_=md5&_s_=f318077f48286cda5fc0e12df7dff176&guid=215fc3689204a7a3a5f6ce73ebbf64bf&ver=5.2&network=WIFI&operator=_46001&album_id=248045&count=6&cid=30&pcode=90000321

搜索v4_4/album_rec
改为空即可
还有一个v4/recommend/video
一样改为空
11,安装后的首次启动动画,是个mp4文件,直接定位到

smali\com\tudou\guide\GuideVideoActivity.smali

靠近最下面的地方播放了这个视频

invoke-direct {p0}, Lcom/tudou/guide/GuideVideoActivity;->play()V

把这句删掉就可以了,然后mp4文件也可以删除了,安装包可以节省4M左右
12,视频播放水印
全屏时的视频水印不只是图片,还会出现订阅发布者的按钮,通过订阅按钮图片资源文件顺着驴腿摸驴蛋,找到了全屏水印的布局文件

res\layout\plugin_fullscreen_watermark.xml

将所有高度宽度改为0.0dip就可以了
非全屏时的播放水印,通过资源文件\res\drawable-xxhdpi-v4\ic_water_mark_small_plug.png
定位到布局,
相应布局宽高改为0的话,整个搜索框都没了
找这句textview的ID index_page_search
13,七夕启动图片

http://api.3g.tudou.com/v4_4/initial?pid=34d185b5c1336e16&_t_=1439995112&_e_=md5&_s_=4665780e265617eea29d83be2ed29190&guid=215fc3689204a7a3a5f6ce73ebbf64bf&ver=5.2&network=WIFI&operator=_46001&brand=Meizu&btype=MX4&os=Android&os_ver=5.0.1&wt=1152&ht=1920&imsi=&imei=866007020052013&deviceid=21f26c755ecc7682&mobile=%2B8618675563352&uuid=&time=1439995110855&mac=00:00:00:00:00:00

返回的信息里有图片和显示时长“keep_time”是2秒,影响启动速度,当然要干掉
屏蔽v4_4/initial 关键词即可
14,抓包意外发现了另外一个广告网址

http://ad.api.3g.tudou.com/adv/startpage?pid=34d185b5c1336e16&_t_=1439996989&_e_=md5&_s_=88b6e24859eba9dcf7e69e186f809288&guid=215fc3689204a7a3a5f6ce73ebbf64bf&ver=5.2&network=WIFI&operator=_46001&site=-1&version=1.0&width=1152&height=1920&imei=866007020052013&mac=00:00:00:00:00:00&aid=21f26c755ecc7682&net=1000&isp=%E4%B8%AD%E5%9B%BD%E8%81%94%E9%80%9A_46001&vc=0&mdl=MX4&dvw=1152&dvh=1920&dprm=3000&osv=5.0.1

直接屏蔽之
顺带发现了ad.api.3g.youku.com,必须也一起屏蔽
屏蔽之后启动速度提高至少2秒

土豆视频5.2去广告破解缓存限制手记


转 腾讯视频去广告手记
制定的计划如下
位置权限
创建快捷方式权限
自启权限
屏蔽“遇见模块”
搜索界面不能沉浸
播放前广告
第二次以后的启动广告
黑色退出菜单改为白色半透明
首页首屏的游戏入口屏蔽掉
将持续更新,搞定一个写一步,中间指不定多改点别的,都属正常
启动第二屏闪屏广告
在图片资源中找到“点击跳过”的图片资源,然后一步两步,一步两步,一步一步似爪牙,似魔鬼的步伐,找到了

smali\com\tencent\qqlive\tad\splash\SplashManager.smali

简单阅读即可发现

.method public static getAndShowAdView

定义了广告的获取和显示

sget-object v1, Lcom/tencent/qqlive/tad/splash/SplashManager;->splashAd:Lcom/tencent/qqlive/tad/data/SplashAdLoader;

在这一句下面加上const/4 v1, 0x0即可
视频播放前广告
抓包,一个一个链接检查,最后发现获取广告的url类似于这样

http://lives.l.qq.com/livemsg?sdtfrom=v5004&device=21&vid=w00177qj2du&ad_type=WL_WK&defn=msd&clip=1&ty=web&coverid=ks868i3pu174pu3&live=0&offline=0&pf=aphone&from=5&dtype=1&pu=0&platform=10303&v=QVaPhoneV4.1&adaptor=1&openudid=915bda9994060d1221c7eae77857ac7e&appversion=150620&chid=0&data=AS64N6HIoeOlSg2LJTyWyVJkXyJ8vF3KJDv4Dq%2FTDHySYXyblTfE7zvF%2FTrmUO7WUbsKV%2BAvvGhgzkOB7%2BLX3cTZA9iiEEaeILXGY07kAMK56Ax8MwYhvLFJKVko39dG%2FVroFDb%2B3th4UMnvZBCdS8UYRfqn4pexZrk%2BKloAwWRjMtY0FTCBKjCog8gKrw6YZIHpfOihwbpLCe%2FfuFlE4d%2B54608Yd%2BTw7Zs%2BuHRhr3DcVTZsDjSORqDV%2Bxi8P%2FMtnmM8Om82VeblNN8BSXUEaWU1zCjIe5xxaXdjHEcUdwQFgExEBcWUWZsIxbimLnKAqY2gxJeLEw58kKWWoqkHT8wiYRDx6aQDDs%2Bl2ZC445yaioILCyWZYhe5FmG4nEEU5RCxhSPTfr1Bta%2FIxZMsBI9XMwb5xxHiX6fHuXkkTkjhdy2%2BTrgztlJxQ2e3dIIt92vEheQ597ztDtYCQ65%2Bakl9dhNVayDyBZ6mXVNSaXJApJy60njfbgqe15kllsbjYW8F1nHvfx4Oq4RK0KNxzYp1QdBj07mVgxnUkW0kwnfeiGrXkizdVpNixDDdzAWyjBZKsblrK86RVxNNedLS8is%2BGtQf%2FTuS7J7HHPBnIuN8dWD2AIyK%2FfBX0YlaScZXzwLc2m0USJgV%2B9MGB4jTNAB%2BU2XQgZW25Ncz5NQUZ3jZZp4oB4fPcEQ%2BS0TG2ZpyhxLftrrkGnosXcSb%2FN%2FSPCSgG7zn238Dt5UekrQesFweoOY8DthRxU%3D

返回结果中有广告的flv文件地址,因此,找livemsg找到了文件

smali\com\tencent\ads\service\a.smali

.method static constructor <clinit>()V函数改为空即可
唉,其实腾讯视频很良心,没多少广告的,以上这两个弄完,去掉一些权限,基本就可用了
干掉“首次启动创建快捷方式”
搜索“shortcut”,找到唯一一个smali文件,唯一一个函数,改为空即可

smali\com\tencent\qqlive\ona\base\b.smali
.method private static b(Landroid/content/Context;Z)V

去除各种推送
其实各种接收器、权限等等都摘除干净的话,也差不多了
然后根据push的开关,定位到smali\com\tencent\qqlive\ona\usercenter\activity\SettingActivity.smali,下面有开关写法,把开的相关功能都删掉,然后把设置中的开关也屏蔽就可以了
去除发现模块

layout/layout_toolbar.xml

去除小圆点

img_updata.png

解决无法使用qq登录
其实改了签名,就没法调用qq登录了,这个无法破解,但是可以变通,就是如果腾讯视频检测到手机上没有qq客户端的话,会直接弹出账号密码登陆框让你登录,所以就好改了
把所有的com.tencent.mobileqq改为空即可
垃圾网址

http://monitor.uu.qq.com/analytics/upload
http://omgmta1.qq.com:80/mstat/report/?index=

明显是腾讯分析的统计上报url,必须干掉

http://pingma.qq.com:80/mstat/report/?index=

你们一定是一伙的


1、由于很多人不是真正的Google Play商店花钱买的,所以安装后有谷歌广告
2、新版的时间日期排列比较蛋疼
3、有些人喜欢默认文件夹优先显示

首先你要会反编译,会使用apktool,然后你要下载了新版本的RE管理器,这个可以到酷安下载:下载地址
1、先去广告反编译之后修改

smali/com/google/android/vending/licensing/LicenseChecker.smali

然后搜索checkAccess 然后在下面代码中间插入一行

move-result v0
const/4 v0, 0x1 //强制验证v0不等于0(这行为新增)
if-eqz v0, :cond_0 //验证了v0=0就会直接跳转到cond_0
const-string v0, "LicenseChecker"

2、时间日期排列修改,直接全局搜索替换
搜索%td %tb %ty %tT替换成%tY-%tm-%td %tT
3、默认文件夹优先先修改/res/xml/preferences.xml

<CheckBoxPreference android:title="!string/folders_first_title" android:key="folders_first" android:summary="This is a check box" android:defaultValue="false" />

把上面一行修改成

<CheckBoxPreference android:title="!string/folders_first_title" android:key="folders_first" android:summary="This is a check box" android:defaultValue="true" />

然后在/smali/com/speedsoftware/rootexplorer/搜索folders_first估计可以搜到好多,但是找对了修改就可以,一共修改两处
第一处

const-string v1, "folders_first"
const/4 v2, 0x0 //直接把0x0改成0x1即可 const/4 v2, 0x1
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

第二处

const-string v1, "folders_first"

直接在这中间添加一行

const/4 v2, 0x1
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

修改完成之后直接回编译打包签名安装测试,反编译,回编译以及签名这里不做说明,越狱大大说,如果你有更好的修改方法欢迎和他一起搞基交流。

本文转自pwelyn-越狱


去广告软件最强总结篇
卡饭论坛--广告规则过滤区
利用hosts去广告
Google hosts 持续更新

https://forum.xda-developers.com/android/apps-games/app-adclear-root-version-ad-blocker-t3309011
https://forum.xda-developers.com/android/apps-games/app-dns66-source-host-ad-blocker-root-t3487497
https://forum.xda-developers.com/showthread.php?t=1916098

关于adguard去广告规则的增强

酷安网友给了这两个补充
http://git.oschina.net/halflife/list/raw/master/ad.txt
https://raw.githubusercontent.com/xinggsf/Adblock-Plus-Rule/master/ABP-FX.txt
还是满给力的

另外,我针对quankan.tv在手机版页面(包括app,实为内嵌h5)
去除底部广告
|http://m.quankan.tv/ad/dibu.js
|http://m.quankan.tv/ad.j
去除页面内的红字提醒
|http://m.quankan.tv##div.contenttt
如果装了手机app的话,可以把app下载提示、页面bottom也去掉,获得更好体验
|http://m.quankan.tv##p.pBtn
|http://m.quankan.tv##footer.footer
大侠阿木自用
http://www.daxiaamu.com/wp-content/uploads/files/blocklist.txt

https://spam404bl.com/spam404scamlist.txt 
https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt 

https://secure.fanboy.co.nz/fanboy-japanese.txt 
https://raw.githubusercontent.com/k2jp/abp-japanese-filters/master/abpjf.txt 
https://raw.githubusercontent.com/k2jp/abp-japanese-filters/master/abpjf_element_hiding.txt 
https://raw.githubusercontent.com/k2jp/abp-japanese-filters/master/abpjf_paranoid.txt 
http://tofukko.r.ribbon.to/Adblock_Plus_list.txt

SSR+ACl去广告(适合iOS和未root安卓)

https://github.com/leosam1995/My_ACL_Rules

看到锁屏广告的时候长按 多任务键 就现出原形了

ADB找出广告

1.要进入开发者模式打开USB调试,安装驱动,这部分教程比较丰富,就略过了。
2.下载adb工具包。
3.找一根稳定的数据线,将手机连接电脑,在手机的弹出窗口中允许USB调试。
1.然后用管理员进CMD,输入(将双引号内的路径换成你电脑上ADB工具所在路径)

cd /d "Z:\Desktop\adb"

2.查看设备,输入

adb devices

如果你的驱动安装正确,应该可以看到有设备,如果没有,请返回准备工作,检查驱动是否正确安装。
3.尝试运行手机中一些APP,笔者花了3分钟时间,在运行到一个清理应用的时候,弹出了广告,按home键返回桌面广告滞留了一瞬间,说明有可能不是APP内的广告。
4.电脑上迅速清理日志,输入

adb logcat -c

清理一次设备日志记录,这时候开始不要操作手机。
5.然后点击一下广告,广告肯定会打开浏览器或者什么别的操作。
6.电脑上输入

adb logcat -d > c:/b.log

在C盘下会创建一个b.log,储存了刚才的设备操作。
7.用notepad++或者其他文本编辑器打开b.log,搜索"Touch event's",可以忽略大小写来查找。
不出意外应可以找到2个事件,一次是按下,一次是弹起。
如图可以看到,在点击事件下方,一个ID为10640的进程拉起了浏览器。
我们把这个ID记下来。
8.回到adb,输入

adb shell

进入shell界面,再输入(将10640换成你找到的ID)

ps | grep "10640"

返回结果如下
这个com.zdworks.android.zdcalendar就是罪魁祸首
后面的事情就简单了,可以直接在adb中输入,卸载之。

adb uninstall com.zdworks.android.zdcalendar

9.返回手机,关闭USB调试。
教程至此,我们已经成功揪出这个家伙,教程分2段写的,所以命令的时间会有差异。


https://voice.google.com/u/0/signup

完了,GV的车真开走了
https://hostloc.com/thread-1008606-1-1.html

10美元永久保留GV
https://www.v2ex.com/t/848817

GV买断
https://www.v2ex.com/t/848606

最近,Google Voice美国电话号码又火起来了,不少朋友渴望获得自己的Google Voice美国电话号码,但苦于无法申请到,目前看到淘宝上居然又人买,就想着写个自己亲测能申请到Google Voice美国号码的教程,当然不想折腾的也是可以花点钱买的。

自动版

申请Google Voice号码的关键:

  1. 美国代理IP,如SS或者VPN
  2. 美国电话号码用来验证
  3. 自动点击工具
  4. Gmail账号

有这几样东西就好搞定Google Voice美国电话号码,
其实方法还是非常的简单,关键是几个技巧,如美国验证电话号码等。
这里一个一个来说,呵呵~

一、美国代理
自行准备吧。现在用VPS搭建个SS代理还是非常好用的

二、Gmail账号申请
这个就不用多提了吧,挂上代理即可申请,建议绑定辅助邮箱和安全手机号码,保证账号的安全性。
三、美国电话号码验证
这里,目前亲测textnow.com免费1个月的美国电话号码账号可以搞定,申请也非常简单,简单的填写点信息即可搞定。
这里说下,获得textnow电话号码后,用Chrome浏览器先随便给一个美国号码打下电话,把需要用到的权限给同意下即可。另外也可以用textnow客户端,这样就可以用来验证Google Voice需要的美国电话号码了。

Textnow 安卓客户端
链接: http://pan.baidu.com/s/1cuzPuQ 密码: ntun

鼠标连续点击工具
链接: http://pan.baidu.com/s/1bpCEKBd 密码: agmk 解压密:RUYO.net

美国各州简称及区号 Word
链接: http://pan.baidu.com/s/1jHIffsq 密码: g3it

环聊 & 环聊拨号器
链接: http://pan.baidu.com/s/1kVatZ3h 密码: bbnz

四、申请Google Voice号码
你要有一部安卓手机,首先获取TEXTNOW号码,输入一个区号
1
得到一个虚拟美国号码登陆GOOGLE Voive后会提示你输入你的号码,也就是NEXTNOW的虚拟号码。

在Google Voice申请过程中验证了美国电话号码身份后,就可以选号了。Google Voice选号网站如下:

https://www.google.com/voice 目前是新版,请切换成旧版。

Google Voice选号如下图:
2
接着就点继续就可以了,但一般需要多次点击才能成功,会出现如下错误提示:“there was an error with your request. please try again.”

没点耐心的闲吧还是建议放弃,手点大法非常难申请到,建议使用鼠标连点器,一般1个小时内就能成功,反正我是很久才申请到的。

脚本版

一般情况下选好号码提交都会遇到错误,这时候可以多试几次,或者使用上面按键精灵之类的软件。如果有美国 vps 的话,也可以直接在 vps 上跑脚本来刷号码:使用 chrome 浏览器,用 F12 打开检查工具,然后,选择一个号码,点提交,切换到 network 选项卡,会看到一个请求,右击选择 “Copy” > “Copy as cURL (bash)” ,然后就可以在 vps 上执行这个了脚本了,这个思路来自 wd and cc。每次执行都相当在页面上点”提交”按钮。
用脚本来重复执行,直到没有错误出现就申请好了,脚本会自动退出,google 会给你发一封邮件。将下面的文本复制保存到 gv.sh ,用刚复制的那个替换掉下面 result=$() 括号中的内容,并将 curl 改成 curl -s

contains() {
    string="$1"
    substring="$2"
    if test "${string#*$substring}" != "$string"
    then
        return 0    # $substring is in $string
    else
        return 1    # $substring is not in $string
    fi
}

while true; do
    result=$(curl -s 'https://www.google.com/voice/b/0/service/post' -H 'origin: https://www.google.com' ... --compressed)
    contains "$result" "error" || exit 0
    sleep 1.5
done

注:脚本部分参考了 how-do-you-tell-if-a-string-contains-another-string-in-unix-shell-scripting
运行出错,请下载模板

然后执行:

bash gv.sh &

3
如何查看shell脚本的运行过程?bash -x gv.sh
注意事项

第一, 新注册的Google账号,然后申请GV, 千万不要跳IP登录。否则被封的几率非常大。

第二,有人说环聊安卓无法接收来电?请仔细研究环聊设置中是否开启了 【来电】开关。记住全程挂美国V.P.N。

第三,Textnow无法接听?文中提到最好使用客户端。如果客户端都无法接听,那没办法了。PS: 语音消息无法验证。

第四,Google Voice有回收政策,而不回收的前提就是半年内使用Google Voice号码发短信或者打电话,这点还是很容易做到的。

from http://www.nbmao.com/archives/2936

保存gv不掉 最简单的办法
http://jiezhi.github.io/2017/03/12/get-google-voice/

【干货】判断哪些号码可以注册Google Voice,如何绕过限制

https://voice.google.com/u/0/signup

Google Voice 回收机制 https://www.v2ex.com/t/837196#reply50
Google Voice 号码如何保号 https://zhuanlan.zhihu.com/p/344220650
google voice 过期了能找回来吗 https://hostloc.com/thread-970943-1-1.html
Google Voice注册/保号/永久号(副号)购买教程 https://51.ruyo.net/15955.html
https://shop.suhj.com/about/
https://duanxin-jiema.com/receive-sms-online-usa-12093085482/
Google Voice号码转移2分钟图文教程和注意事项 https://www.goojie.eu/173.html
关于 Google Voice 过期提示相关问题 https://pdf-lib.org/Home/Details/12756


Typecho站点

http://www.typecho.re/
http://www.typecho.biz/
https://typecho.me/
http://www.yzmb.me/
http://www.boke8.net
https://github.com/typecho-fans

插件

https://github.com/mrgeneralgoo/typecho-update-assistant
https://github.com/Archeb/MailValidate
https://plugins.typecho.me/firstblood
发布仿自wp的一款主题Channel+Tinyfader首页幻灯插件
https://codeup.me/armx.html
https://github.com/natcube/ArmX
多用户会员中心
WeMediaForTypecho付费阅读插件(支持payjs+SPay免登录支付)
https://fwalert.com/115 https://github.com/YianAndCode/Comment2Fanwan

教程

Typecho-文档及教程
Typecho二次开发 文章表添加新字段
收集一些TYPECHO模板制作过程中的常见代码、插件、模板
收集typecho相关方面的代码、插件、主题等信息
Typecho 有没有二次开发文档?
Typecho博客主题制作常用变量和函数代码之文章列表调用篇 http://xtw.teai.org/
博客程序Typecho主题模版制作常用调用变量和函数,参数分享
给typecho加上类似CMS焦点图轮播幻灯片功能效果(代码调用非插件)
客添加能动的看板娘(Live2D)-关于模型的二三事
强迫症福音:博客的中文和英文之间会自动加入一个空白符了
Typecho 导航栏不显示某分类或独立页面
Typecho导航栏菜单显示所有分类目录
Typecho 自定义二级菜单
Typecho 设置父分类和子分类不同样式的方法
教程
typecho导航调用分类,并实现折叠效果
https://github.com/buxia97/RuleApp

微信插件

typecho评论微信通知插件
https://github.com/binjoo/WeChatHelper
https://github.com/jrotty/typecho-for-notice
微信公众号关注并获取密码插件
小程序版typecho && GitHub

微信推送

https://github.com/YianAndCode/Comment2Wechat
整合Typecho评论邮件提醒加上微信推送 用的插件

https://github.com/binjoo/YangCong
Comment2Wechat https://github.com/YianAndCode/Comment2Wechat

后台两步验证插件 for Typecho

Themes

https://github.com/crazystear/Practice01 配色很舒服的主题
https://github.com/jrotty/Themia-for-TE
https://github.com/chakhsu/pinghsu
https://www.ihewro.com/archives/489/ handsome
typecho主题及插件ArmX
http://www.marky.cn/typecho-emoji.html
http://www.marky.cn/InstantClick.html
Typecho网址分类导航主题TiNav
自动收录、批量验证的导航主题免费发布

安全

config.inc.php中加入这样才完全开启了SSL

define('__TYPECHO_SECURE__',true);

Typecho修改后台路径留下的漏洞
Typecho漏洞利用工具首发,半分钟完成渗透测试
Typecho的错误输出

基于Typecho的企业主题【集合贴】

其他

instantclick 中文文档
typecho评论表单第一次提交失效的问题

http://******/?_=密码




GitHub 服务状态
官方搜索关键字文档
官方搜索文档
第三方介绍搜索

MacOS、Git 的代理配置

https://www.v2ex.com/t/843383
https://juejin.cn/post/6844904100081975303

https://www.toimc.com/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/
git常用命令

https://www.toimc.com/git%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86/
git分支管理

第三方代理
https://fastgit.org/

你们仍未掌握那天所学的 git 知识

版本格式:主版本号.次版本号.修订号

Git飞行规则(Flight Rules)

git生成ssh key及本地解决多个ssh key的问题
安装Git:git-scm.com
客户端https://sourceforge.net/projects/git-osx-installer/files/

Git教程
Git 教程
Git中文教程
给自己点时间再记记这200条Git命令
常用 Git 命令清单
Git 简单使用说明
如何搭建一个独立博客——简明 Github Pages与 jekyll 教程
Linux之CentOS 6.7上全编译安装GitLab 7-14中文版
看完就会用的GIT操作图解分析
终于解决“Git Windows客户端保存用户名与密码”的问题
git 简单教程,个人使用
总结一下 Git 不同情况下如何回滚
因为 git pull 和同事闹僵了。
git 似乎在 windows 和 macos 上有差异?
GitHub 上 clone 一个项目下来,慢

git撤销commit 并保存之前的修改
关于git提示“warning: LF will be replaced by CRLF”终极解答
自动忽略不提交从git服务器上获取下并修改的文件
git忽略已经被提交的文件
git commit之后,想撤销commit

git——修改已经提交并push后的commit注释

git默认是不能识别中文的。需要在终端修改能识别中文。

git config --global core.quotepath false

个人空间地址变更后,执行以下命令更新你本地 git 仓库的 remote 地址,如:

git remote set-url origin https://gitee.com/badcodes/jtaro-tutorial.git

git bash 出现vim的时候怎么退出

如果是输出状态,
首先按Esc键退出输入状态,
然后按Shift+“;”,再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出。



使用git push origin master是出现如下问题;
Username for 'https://github.com':
解决办法:
git remote set-url origin git+ssh://git@github.com/username/reponame.git

如何把自己的项目共享到 Github

**create a new repository on the command line**
echo "# xx" >> README.md
git init
git config user.name "username"  //如果使用指定用户提交
git config user.email "username@gmail.com" //如果使用指定用户邮箱提交
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xx/xx.git
git push -u origin master

**or push an existing repository from the command line**
git remote add origin https://github.com/xx/xx.git
git push -u origin master


Enter passphrase for key 每次push 都要输入push 密码

因为当初生成SSH KEY的时候有设置密码
解决方法:

github 每次需要输入passphrase for key id_rsa 的解决办法

http://stackoverflow.com/questions/21095054/ssh-key-still-asking-for-password-and-passphrase
参考了stackoverflow
删除掉之前的passphrase密码就可以了

$ ssh-keygen -p

当提升你输入新的密码的时候,按enter就可以啦,继续确认enter就可以

Mac下输出目录树层结构的tree命令
brew install tree
安装成功后可以使用--help查看帮助信息
tree --help
tree -I “node_modules”

3.配置用户信息
git config --global user.name "你的 Github 用户名"
git config --global user.email "你的 Github 注册邮箱"

[github上fork别人的代码之后,如何保持和原作者同步的更新(转)[31]

经常看到GitHub上作者有更新,但是之前Fork了的项目没有更新到自己上
看到github上fork别人的代码之后,如何保持和原作者同步的更新
这家伙以前有个很nice的域名是doufu.ru(豆腐乳),想应该是卖了吧?
转载一下,可能以后会用到

保持和原作者同步的更新的方法

1、进入你的Github发起Pull Request
123
2、选择Compare across fork
3、然后反向操作,base改成自己的Forkhead改成原作者的,然后Github会自动比较改过的地方让后发起Pull Request,接着在自己项目的Request页面合并一下就行了。

刚用上,杠杠的

个人空间地址变更后,执行以下命令更新你本地 git 仓库的 remote 地址,如:
git remote set-url origin https://gitee.com/badcodes/jtaro-tutorial.git

git 常用命令

自定义目录名

git clone https://git.oschina.net/XXX/hello-world.git my-hello-world

git add 添加 多余文件
这样的错误是由于, 有的时候 可能

git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件

git add 如果添加了错误的文件的话

撤销操作

git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

分支

查看本地分支

git branch

查看所有分支(本地加远程)

git branch -a

创建分支

git branch <branch-name> # 例: git branch develop

切换(检出)分支

git checkout <branch-name> # 例: git checkout develop

创建并切换到新建分支

git checkout -b <branch-name> # 例:git checkout -b develop

提交本地分支到远程分支

git push origin branch_name
git push origin branch_name:master


撤回

不小心commit了一个不应该commit的修改,但是还没有push,想撤销那个commit

git log
git reset --hard commit_id

git reflog 时光穿梭机

来自此处
场景如下:

1.commit的信息很简单,就是做了6个功能,每个功能对应一个commit的提交,分别是feature-1 到 feature-6;  
2.小白回滚到了feature-1上,并且回滚的时候加了--hard,导致之前feature-2 到 feature-6的所有代码全部弄丢了;  
3.现在feature-2 到 feature-6的代码没了;
4.小白还在这个基础上新添加了一个commit提交,信息叫feature-7;
5.现在feature-2 到 feature-6全没了,还多了一个feature-7;
6.如何把丢失的代码feature-2 到 feature-6全部恢复回来,并且feature-7的代码也要保留;

只需掌握了git reflog和git cherry-pick
git reflog
展示出所有你之前git操作,你以前所有的操作都被git记录了下来
这时候要记好两个值:4c97ff3和cd52afc,
他们分别是feature-7和feature-6的hash码。
然后执行回滚,回到feature-6上:
git reset --hard cd52afc
现在我们回到了feature-6,
但是feature-7没了,如何加上来呢?
这个时候就用上了git cherry-pick,
刚刚我们知道了feature-7的hash码为4c97ff3,操作如下:
git cherry-pick 4c97ff3
输入好了以后,你的feature-7的代码就回来了。
期间可能会有一些冲突,按照提示解决就好。
feature-1 到 feature-7的代码就合并到了一起,以前的代码也都回来了。


提交代码

git commit -m <comment> # 例:git commit -m "修复了issue-1:错别字"

合并

切换到master主干并将develop分支的代码合并过来

git checkout master
git merge <branch-name> # 例:git merge develop


从历史的提交建立新分支的方法:
方法一: checkout到历史提交,然后checkout -b。
方法二: reset到历史提交,checkout -b,然后再reset到原来的版本。
方法三: git branch

将某个历史版本全部拉到工作区和暂存区:
方法一: 可能的需求是为了将过去删除掉的修改重新应用到最新的版本,这时可以先回到历史版本处建立分支,然后回到原来的最新的版本,进行merge分支的操作。
方法二: reset加上hard参数到需要的历史版本,然后再reset加上soft参数回来。

将历史版本的某文件版本拉到当前工作区或者暂存区进行处理:
方法一: git reset HEAD~2 foo.py,直接拉到暂存区。
方法二: git checkout HEAD~2 foo.py,拉到工作区和暂存区。

已经有添加到暂存区的文件修改,之后又进行了修改。想要都撤销掉,变为和仓库中的版本相同(仓库覆盖工作和暂存):
方法一:1、git reset HEAD file 清空暂存区的提交,变为和仓库中的版本相同。2、git checkout -- file 以暂存区为蓝本,覆盖掉工作区。
方法二:git checkout HEAD -- file 。

已经添加到暂存区的修改之后又进行了修改,想要都撤销掉,变为和仓库中的版本相同(仓库覆盖工作和暂存):
方法一:git reset --hard HEAD 重设HEAD,hard参数覆盖工作区和暂存区。
方法二:强制切换到其他分支丢弃更改,然后再切回来。

撤销当前工作区的文件修改,变为和暂存区相同(暂存覆盖工作):
方法一:git checkout -- file 暂存区覆盖工作区(以暂存区为蓝本,覆盖掉工作区)。

撤销添加到暂存区的文件修改,将修改退回到工作区(暂存先覆盖工作,然后仓库覆盖暂存):
方法一:1、git checkout -- file 以暂存区为蓝本,覆盖掉工作区。 2、git reset HEAD file 清空暂存区的提交,变为和仓库中的版本相同。

清空暂存区文件修改:
方法一:git reset -- file 清空暂存区的文件修改。

清空暂存区:
方法一:git reset HEAD file 清空暂存区。

checkout文件层面的操作:
主要对暂存区和工作区起作用,一般有暂存区覆盖工作区的行为特征。

reset文件层面的操作:
主要对暂存区起作用。

简单对比git pull和git pull --rebase的使用

git常用指令
git 问题汇总
同时把代码提交到两个git代码托管的服务器上

git commit -m 提交的内容换行
网上说只需要通过单引号来换行,一直没理解,后面终于试出来了。总结一句话就是。 。

先输入第一个引号,按Enter即可换行,完成后再补齐后面的引号
// 步骤一: 输入第一行
git commit -m "1. 第一行

// 步骤二: 按Enter 输入第二行
git commit -m "1. 第一行

第二行
// 步骤三: 输入完毕,补齐引号,提交!
git commit -m "1. 第一行

第二行"

git 放弃本地某个文件的修改,或所有修改

1.git checkout
git checkout 文件名
git checkout // 放弃所有文件的所有修改
2.git reset
git reset --hard 版本号 // 返回到某个版本,放弃所有修改
有一种恢复会保留修改记录,有一种不会保留修改记录,请翻阅资料文档

远程分支 A 改名为B了,本地(git branch -a )没找到
解决方法:
git fetch origin B #更新
git branch -a #查看所有分支

多人合作最优选择Gitlab flow
或者下面的流程

多人合作开发使用git(简单版)

A新开一个分支a
B新开一个分支b
主分支为master
A开发的代码提交到远程a分支上(git push origin a)
然后切换master主分支上(git checkout master),拉远程master分支是否有更新(git pull origin master)
然后合并本地分支a最新代码(git merge a),在提交到远程master分支上(git push origin master)
然后切换分支a上(git checkout a),合并最新master分支上的代码到分支a上(git merge master)
最后继续写代码或者直接更新最新代码到远程分支a上(git push origin a)

B操作同理

多人开发Git(繁琐版)

情况如下:
1.线上突然出现一个紧急的bug,需要紧急处理,但不影响本地正在进行的开发;
2.只修bug;
3.新功能开发。

场景:线上的某个模块有bug,要求撤回,更换到上个版本,但不影响这个版本新加的功能(A->B->M)
做法:本地根据情况(功能,bug)新建分支,不要在一个分支上开发: 本地会有bugA,bugB, fix, dev, test等
处理:(A->B->M)线上模版X出现bugB,但此版本已有新功能M,master不能直接撤回上个版本A,

 本地模块X分支从B撤回上个版本A,合并新功能M的更新,提交。

疑问:模块X分支上要不要git pull?

1.本地新建 test 分支 并拉取远程 test 分支
git checkout -b test origin/test
PS: 【拉取远程是指在这个时刻以远程的更新为主,在此基础上开发,备用,正常状态不会动这个分支】

2.新建 bug 分支
git branch bug
PS:【根据需求,会有N 多 个bug 分支,或开发分支】

3.切换到 bug 分支上
git checkout bug

以上2.3步骤可以一个命令:
新建并切换这个 bug 新分支
git checkout -b bug

4.在新分支上合并 test 分支
git merge test
PS:【新建分支后这个新分支没用任何东西,需要将最新的(根据情况)分支合并到这个新分支上,在此基础上开发、修改】

以上步骤都是在新分支上进行:
bug 分支合并 test 主分支后,
就是说在 test 主分支的基础上开发、修 bug,但不动 test 分支
开发完后再切换到 test 主分支上

5.切换到 test 主分支
git checkout test

切到 test 主分支后
此时的 test 分支还是上一次git pull 的状态
并没有合并bug 分支的更新,同时可能比远程的 test 分支版本还要低
所以需要进行下一步拉取远程 test 主分支更新

6.拉取远程 test 主分支
git pull origin test

拉取远程分支

git checkout -b 本地分支 origin/远程分支

在拉取远程 test 主分支前,
本地此时的 test 主分支还是上个版本,
本地的 test 分支也没改动过,合并远程 test 主分支后是没问题的。
进行下一步合并本地开发 bug 分支,
一般出现冲突是在这一步【git merge bug】

7.在此分支合并其他分支,例如test 分支上合并 bug 分支
git merge bug

合并本地bug分支前,此时的 test 分支是远程最新的[PS:在上一步已经拉取远程 test 主分支的 更新]
此时的 本地 test 主分支在与本地 bug 分支合并[git merge bug]过程中可能会出现冲突

解决后,将本地 test 分支的更新提交到远程 test 分支上

8.提交到远程 test 主分支
git push origin test

提交后,再次回到开始,循环以上。

几个有用的命令:

1.获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。
git cherry-pick deeb74302f0e44

2.从撤回一次历史的提交,git revert 命令的好处就是不会丢掉别人的提交,即使你撤销后覆盖了别人的提交,他更新代码后,可以在本地用 reset 向前回滚,找到自己的代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖的提交了。
git revert deeb74302f0e44

[Git高级教程(二)] 远程仓库版本回退方法
[Git] Git整理(五) git cherry-pick的使用

git使用情景1:正在写代码,突然线上出现了bug

方式2:拉一个新分支,老司机都推荐这样做,充分利用了git特性
先暂存一下工作空间改动:
git stash
还原暂存工作空间的改动:
git stash pop

新建一个分支,并且换到这个新分支
git branch fix_bug //新建分支
git checkout fix_bug //切换分支

这时候就可以安心的在这个fix_bug分支改bug了,改完之后:
git add .
git commit -m "fix a bug"

切换到master主分支
git checkout master

从fix_bug合并到master分支
git merge fix_bug

提交代码
git push

然后从暂存区恢复代码
git stash pop

此时如有冲突,需要解决冲突
哈哈,工作空间又恢复到了原状

其他

执行Git命令时出现各种 SSL certificate problem 的解决办法

git config --global http.sslVerify false

建议用 git check-ignore 来检查下是哪个规则导致的
Window 上如何删除git的账户
控制面板用户帐户凭据管理器 ,选Windows凭据,看到普通凭据
git log退出方法:英文状态下按Q

git强制覆盖:

    git fetch --all
    git reset --hard origin/master
    git pull

git强制覆盖本地命令(单条执行):

    git fetch --all && git reset --hard origin/master && git pull

git强制覆盖单个文件或目录filename

git log

获取commit ID:cc8990b

git checkout -m cc8990b <filename>

例如:

git log
获取commit ID:430c63aba0f2812d
git checkout 430c63aba0f2812d src/views/xxx/Home.vue


如何移除 git 提交历史中关于某个文件的修改历史?

场景是这样的,在一次提交 PR 的 review 过程中,我提交的一个文件,在若干 commits 的修改下,最终和最初状态完全相同,但是 PR 中却保留了对该文件的提交历史,因此 reviewer 希望我可以将这个文件移除提交历史。

这个主要需要用到 git rebase ,步骤如下:

git log filename: 首先通过 git log 来查询要回滚到的 commit id
git reset commit-id filename: 对该文件进行 reset 操作(撤销提交历史相关的修改)
git checkout filename: 对其进行 checkout 操作(撤销对文件本身的修改)
git commit --amend: 修改提交历史信息
git rebase --continue/git push: 同步

我的提交信息规范

aliyun code

https://code.aliyun.com/help/ssh/README 生成Ssh
https://code.aliyun.com/profile PC上无法验证显示“页面不存在(404)”, 手机上可以。
https://code.aliyun.com/profile/password/edit 如果没有设置code账号(区别登录账号)密码,先验证邮箱才可以更改密码
阿里云window下ssh 错误
Aliyun关于用户的新规则

GitHub

github的表情
GitHub Actions 操作

PR

例如A本地:
git init
操作 n 次 commits ...

git:
A新建一个aaa 仓库

把本地提交到远程 aaa,需要把本地的git 指向 远程
git remote add origin git@github.com/xxx/aaa.git
git push origin master


第三方B fork A 的 aaa
B:git clone git@github.com/bbb/aaa.git

B: 开发新功能,新建分支ccc
git checkout -b ccc
edit,commit ...

提交到 B 的 远程
git push origin ccc

B在A 的仓库发起PR

但此时原作者已经修改多次
原作者需要做新建分支bbb 同步B的代码 ,合并B的ccc
git remote add bbb git@github.com:bbb/aaa.git
git fetch bbb
得到 bbb/ccc
然后A新建测试分支newA
git checkout -b newA
git merge bbb/ccc


测试完成后,A合并到master
git cehckout master
git merge newA
测试没用后,A删除newA
git bran -D newA

A原作者,合并代码提交
git push origin master

完成一次PR
B 可以删除之前的分支ccc
git branch -D ccc
删除远程的ccc
git push origin :ccc


之后bbb  把原作者的代码添加到自己这边来
git remote add upstream git@github.com:A/aaa.git
git checkout master 
git pull upstream master


五步git操作搞定Github中fork的项目与原作者同步

https://blog.csdn.net/zwhlxl/article/details/45110587

命令如下:

git clone xxx-fork.git

git remote add xxx xxx.git

git fetch xxx

git merge xxx/master

git push origin master


知乎原文答案被作者删 这里来自网友收藏
https://terry.pub/life/2016/02/08/how-was-your-relationship-with-parents/

08 FEB 2016



著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。

作者:啊邦同学

链接:https://www.zhihu.com/question/39652556/answer/83054073

来源:知乎

豆瓣有个特别的东西,叫做“父母皆祸害”小组,如果你不知道的话,我相信搜索那五个字,弹出的内容将带你发现更大的世界,甚至让你怀疑自己和里面的人是不是“同住地球村”。这个听起来“大逆不道”的小组名字恰好反衬了所有尝试与50、60后父母沟通失败的例子的黑色幽默。

本科期间的所有假期,我常见到朋友圈、微博各路好友,吐槽他们在家被父母嫌弃的各种经历,有的是真悲哀、有的是假撒娇,简直是一部“家有儿女”之“放假你们撕逼了吗”系列大戏。
总之,我确信,“大学生寒、暑假在家久待被父母嫌弃甚至怒斥”这种事,绝不是中国社会的个例,而是一种存在于“50、60后”作为主导力量的家庭中的普遍现象。“大学生寒、暑假与父母久处”的行为轨迹大致为:放假前盼星盼月盼子女归来,归来头3天到7天内宠成宝,之后进入平静期开始挑毛病、找缺点,嫌起床晚、熬夜、不吃早饭、邋遢、不收拾、不会做家务、贪玩、不好学……

如果子女和父母一直都关系紧张的,一般第二周开始会进入争吵模式;关系一般的,可能会在忍耐、沉默以及装蒜中平静度过更长一段时间;只有百分之一甚至更低比率,能够较和谐地相处。

所以觉得和父母关系紧张或者一般的朋友,并不一定是你不孝顺,也不是情商低,这不丢人。是社会发展和历史原因,让80后、90后和50后、60后似乎永远处在两个维度,沟通起来往往鸡同鸭讲,一点就炸——认识到这点,至少双方的心态都能够平和一些,尤其是子女一方。

我猜题主你和你母亲相处那么久,可能已经隐约甚至明确发现了,用言语进行沟通进而达到双方关系的调和,是不可能完成的任务,您所说的“找茬机中的战斗机”,精确而幽默地反映了令堂身上典型的“50、60后”中国式家长行为模式。

比如,他们可能误解了“细节决定成败”这句话究竟是什么意思,擅长的是从细微处入手,把一些你的确是不小心干砸的、鸡毛蒜皮的小事,作为“教你做人”的引子,大概三个拐弯就可以扯到你今后“事业堪忧”、“学业药丸”、“嫁不出去”、“谁敢嫁给你”等问题。
如果你敢正面申辩,比如回应她“这种事没什么大不了的啊,我已经知道了,下次不会再犯啦”之类的话,她一定认为这是顶撞,而你并没有深刻认识到这件事的错误,说明她刚才的教育还不充分,还得再继续加强一番,于是往后就不是“就事论事”了,而是上纲上线、“翻旧账”,把你以前做不好的事(虽然那时大概也已经批判过你一次了)再拿来教育你一番,素质程度低一点的,直接可以把你骂得连祖宗都不认识。

看到这里,如果有人觉得我只是极端的吐槽,觉得“父母毒舌、苦口婆心,还不是为了你好?”、“你就只会吐槽,说长辈的坏话,有什么卵用”,那我说,您白看那么久了。

只有充分了解并认真总结一个群体的普遍行为习惯和背后的原因,才能真正找到一个更有利的相处模式,否则你的行为和沟通方式永远隔靴搔痒、鸡同鸭讲,对了,还可能死得又惨又快。

对了,我再强调一点,我不认为,教育必须通过暴力、强权、甚至是语言暴力、冷暴力来实现。世间教育子女途径千万种,偏偏拥护和支持最落后的那一种途径,要么是脑子有坑,要么是骨头真贱。一个孩子成长过程中持续受到指责、批评的负反馈而没有恰当的疏导和正反馈的话,人格必然扭曲,内心深处是不可逆的高度自卑和严重缺爱。

我曾和我父母就以上类似问题进行过探讨,虽然话不中听,但他们承认,我总结得基本全对,因为他们这一代匮乏的信息输入和保守的社会发展背景,导致了他们面对陌生第一反应不是认同和接纳,而是抵抗和排斥,这种保守和封闭也决定了他们容易抵抗家庭成员的反抗和沟通,因为他们不仅理解不了,也不需要。

你需要了解的是,父母寒、暑假对你挑刺,抛开你的确爱熬夜、睡懒觉这种小事之外,还因为他们的超强的控制欲、极低的情感爆发阈值决定了他们很多时候只是把你当做一个他们宣泄情感的垃圾桶——我知道这么说有点残忍,孩子怎么可能是父母的垃圾桶呢,但事实就是如此,因为只有垃圾桶,才不需要任何的沟通甚至是反抗,就照单全收所有垃圾。

我要解构的出来并认真告诉你的是,如果你是一个90后已经成年的学生,我不建议,也不认为,你可以与你的父母进行任何关于大型内容(三观问题)的沟通和协调,你做不到,也毫无可能,所以请坦然面对。

因为特殊文化社会背景下,他们那一代的关于“家庭成员相处内容的行为模式”已经彻底养成,根深蒂固,他们那一代人中,只有长期保持学习的成长属性并且有着足够信息输入再综合个人性格的少数人,才有可能理解你的真正想法,包容你的行为, 甚至愿意放下长者的身份与你坦诚沟通,我不相信一个成天挑刺的长辈会具备那种“少数人”的属性。

明白以上,你会坦诚接受与他们进行深刻沟通是一个辛苦的过程、不可能完成的任务,我的建议是:

放平心态,坦然面对你们不可调和的矛盾,勇敢告诉自己“我努力过了,就这样了,不是我的错”。

你须知,处理不好这层关系不是你的错,你为家庭关系的和睦付出过努力但失败了,证明令堂只是属于我归纳的典型群体,所以你不必因此自责。看似细微,但这种自责和无力感,却可能毁掉一个20多岁年轻人的自信,他以后的人生,都可能笼罩在“我和父母关系紧张,为什么我那么不幸,好悲哀”的阴影之下,所以,你必须要告诉自己,这没什么大不了。这种强心理激励,是其中一把钥匙。

敷衍应对,是一种对大部分人都正确,代价极小,但后患无穷的方式,需要配合与他人沟通和一定的宣泄途径使用。

根据我的观察,敷衍应对父母的指责和挑刺,是保持你们形似和谐关系的代价最小的方法。当他们对你的指责和批评得不到你的反馈,内容和情绪的更新积极性都会下降。敷衍应对的正确做法,不是“一句话不吭”,那样反倒会让他们觉得你油盐不进、更要教育,而是言语上正面肯定他们的指责和批评,并且不和他们正面对抗。

——具体原因,请参照上文的剖析和解构,我之所以之前铺垫甚多,是想让你明白,如何去积极而坦然地敷衍:对的道理你听,宣泄式的指责、上纲上线式的指责则敷衍,这没什么好羞耻的。

但这种方法的弊端在于,会让你心里积蓄的负能量越来越多,什么时候爆发都保不齐。因此,与他人沟通并且寻找一定的宣泄途径非常必要,对了,这个“他人”绝无可能是父母。

成本最大但恰恰是最有效的,是大幅减少与他们共处的时间。

我知道这听起来极其残忍,甚至有违孝道,但我冒着被大量拉黑的危险理性说一句,只有这样,才能让你的心理更健康。

因为成天沉默式地接纳负面情绪和重复式教育,而你得不到积极的反馈和鼓励,整个人的心态会变得极其扭曲。“敷衍应对”方法的后患在于,你有可能因此麻木,失去自己作为一个自然人去“爱人”、“追求人格独立”的能力和热情。换句话说,你会觉得:“我的生活怎么那么可悲,怎么会有这么残暴的父母,好悲哀,好可怜。”

你以为这种自怨自艾的情绪无处排遣就这么自行消解了么?错了,它会扭曲你,极有可能让你今后成为你父母这样的人,让你们家庭永远陷入恶性循环。

怎么减少?报个培训班,经济条件允许的话,学英语、学音乐、学体育,又有可能的话,去图书馆,再不济,去公园背单词,去街上跑步,若你有一定自制力和有条件的,可以选择假期更多时间是自己独处,住在一个地方。总之,减少物理空间内的正面接触,又不要让长辈抓住你游手好闲的口实。

我没有危言耸听, 也不是站着说话不腰疼,更非纸上谈兵,老实说,我和父母关系一直不错,对我而言,假期和父母相处从未存在过问题,但上面我写出来的所有的方法,我自己都尝试过,效果很好,特别是第三条。

而看到上文觉得我是在胡说八道甚至暴跳如雷的,要么是被恰好说中了他们的痛处和短处,要么根本不敢直面这个缺陷,无能的愤怒和暴戾带来的,永远是不对等的沟通和敷衍。

要我说,我没必要去吐槽任何人,时代车轮碾过的个例的悲哀,是时代留给他们的烙印。我只希望看过这个的80后、90后的朋友,甚至50、60后的父母都明白,孝顺不是一件简单的行为,孝顺但与父母关系不和谐,不是什么见不得人的事情,时代的飞跃发展决定了,这个信息骤然拔高带来的中国的家庭问题,远比你们想象得多,只有坦诚接受,正视问题,寻找途径,才有可能真正解决它,否则终有一天,你只会“变成当初自己讨厌的那个人”。

感谢阅读。


煲机方法:

煲耳机一定不能着急,使用过大的音量,往往不仅不能提升音质,反而造成不可逆转的损伤。
前24小时,逐渐使用低于正常使用音量的1/3到正常音量,循序渐进的活跃震膜。
在播放常听的音乐,正常使用12个小时。接下来慢慢使用就可以了,
或者如果不挑剔,慢慢使用,耳机早晚会发挥出最佳音质的。

http://pan.baidu.com/s/1gdeWmZL(在此下载煲机软件)

海量音乐资源
A盘:http://pan.baidu.com/s/1bnxswlL 密码:oude
B盘:http://pan.baidu.com/s/1sjNUnwD 密码:6a9d

目录地址 MV MTV等等↓

http://www.400gb.com/u/4191347密码:3345678另附送1T音乐资源↓ http://www.400gb.com/shared/folder_6043012_6fbc8832

苹果Earpods lighting接口耳机真假辨别教程
苹果正品原装耳机EarPods 真假辨别仿品 ,真伪原装数据线


万用表

ZT-300AB

DIY桌

铝材:4040

焊铁(焊台)

http://www.51hei.com/bbs/dpj-104486-1.html
T12白光烙铁固件源码(天山V1.2 51单片机硬件SPI LED支持3芯手柄)
天山控制板作者王志浩
https://www.baidu.com/s?wd=%E5%A4%A9%E5%B1%B1%E6%8E%A7%E5%88%B6%E6%9D%BF%E4%BD%9C%E8%80%85%E7%8E%8B%E5%BF%97%E6%B5%A9

经验

可以用易拉罐 做简单的钢网

显示屏

参数查询

屏库
台亚光电

色域

P3就是视频色域,ADOBE就是印刷色域

显示器参数简单科普
DCI-P3色域90%和100%SRGB色域哪个好
100%DCI-P3和100%sRGB哪个更好?

码农工作利器之便携显示器
一些分辨率术语的含义
https://item.jd.com/2300369.html
LG 27UD68-W 27英寸4K IPS硬屏 1899 2018.4.1

背光现在只有 LED 背光了,优选直流 DC 调光,次选高频 PWM 调光。

烧屏网
自制的外置显示器亮度调节工具——BrightnessE

1080 100%=4K 200%
电脑屏幕

码农工作利器之便携显示器
DIY 5K显示器装机贴
最近DIY了台5k显示器,黑苹果下倒不支持5k显示

DIY便携式显示屏

v42兼容很多屏幕。N卡 核显 A卡。 兼容300hz 、2k 165hz、2k 240hz、4k 120hz

DIY主机

塞翁失马——多余的NUC8i7BEH摇身一变成廉价高性能Mac mini && 评测 && 黑苹果
[整机搭建] 至薄简约の小钢炮,Fractal Design Node 202 Slim 装机 show

------------------------------分割线---------------------------------

http://laptopmedia.com/laptop-specs/dell-xps-15-9570/

HDD && SSD

2019年初主要消费级固态横评
磁盘分区的4K对齐(普及帖)
西部数据(WD)My Passport Ultra 4TB 2.5英寸
https://item.jd.com/4560097.html 899

SSD

支持 NVME 协议具备以下三点:

6代或以上的CPU;
有 M.2 接口;
支持2280 规格。

https://tieba.baidu.com/p/7437544288
PM9A1在黑苹果里面完全正常不掉速

【调查】SATA盘HD Tune文件基准大集合,看看你SSD的真实水平!
as-ssd-benchmark测试软件
CrystalDiskMark
https://item.taobao.com/item.htm?id=565817711061
三星原装正品拆机 PM871 512GB MZ7LN512HCHP-000L1 2.5寸接口 ¥389.00
三星(SAMSUNG) 970 EVO 500G M.2 NVMe 固态硬盘(MZ-V7E500BW)
三星固件下载
三星官方 NVMe 3.0 驱动 (更新支持970 Pro、970 EVO)

鼠标

三种鼠标握持方式示意图
https://www.v2ex.com/t/447367
罗技(Logitech)MX Master 2S 无线鼠标

V2EX

麻烦推荐编程用的台式机组装方案
黑苹果/Linux/Windows 通用台式机有什么要注意的

图拉丁吧

Chiphell 硬件Show

进去看【新货开箱】【心血改装】【张罗新机】【老树发芽】【精品收藏】
硬件Show

广州二手笔记本

二手
二手


需要手动编译 ssr-libev。

编译 shadowsocks-libev 方法:

下载源码:

git clone https://github.com/kaneawk/shadowsocksr-libev
cd shadowsocksr-libev

1.安装依赖:

brew install asciidoc
brew install xmlto
brew install openssl
brew install pcre

2.设置环境变量:

export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
export XML_CATALOG_FILES=/usr/local/etc/xml/catalog

3.编译

./configure && make -j4

4.提取 src 下的 ss-local,替换下载的 ShadowsocksX-NG-R8.app/Contents/Resources/ss-local 原文件。

5.拖进应用程序中,运行即可。