易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
小米手机关闭广告方法

小米手机关闭广告方法

一直用小米的手机作为备机,其实用用还挺好的。比如家庭守护之类的,可以管理小朋友的手机,但广告确实也是一堆。
一、对小爱同学说 「关闭系统广告」
二、设置里面搜索 「广告服务」,选择关闭
三、应用商店 ->我的 ->设置 ->推荐
四、天气 ->设置 ->用户体验计划 ->有三项可以全关
五、日历 ->找到三个点 ->设置 ->用户体验计划 ->内容推广
六、浏览器 ->设置 ->高级设置 ->个性化推荐」进行优化。
其他还有不少,基本上都能关,但就是要一个个的设置
---EOF
家庭守护其实可以给老年人装,至少可以禁止他们安装程序,这样你弄好之后,就几乎不用担心他们偶尔点链接下载一些不该下的程序了。这点挺好
Laravel 修改 Hash的默认driver 为Md5

Laravel 修改 Hash的默认driver 为Md5

写这一篇记录的时候,是因为在尝试用Nova做后台,因为是基于老的数据库,所以用户这一块在登录的时候判断密码是否正确就验证不通过了。默认laravel的hashing用的是bcrypt,而老数据库,大家都懂的,明显是md5,然后是不是加盐(salt),就看实际情况了。

对于Laravel来说,hasher的调整是在app/config/hashing.php里进行配置,但默认的是bcrypt。配置文件里直接就说了,【Supported: "bcrypt", "argon", "argon2id"】,那,MD5怎么办?

如果只是为了登录,那当然直接改Login方法就行了。如果不改Login方法,甚至想一行代码都不改,最好就是实现一个md5的驱动,同时让driver设置为md5即可。

网上的教程都是写一个Md5ServiceProvider,然后app->make('hash'),将它直接修改为Md5。这样带来的另一个问题,你反而不能直接用一些默认的方法了,比如Hash::make和Hash::check,因为整个hash都替换了。

正确的方法是,实现一个Md5的Hasher,然后,扩展一个方法出来,相当于实现了一个md5的driver,这时候再调整hashing中将driver设置为md5即可。此时,你再调用Hash::make,返回的就是md5后的结果,也支持参数(参数功能需要自己开发,比如 Hash::make('123',['salt'=>11]),即为md5加盐,也可以支持type ='suffix' 或者其他,甚至可以 double salt。so easy ~~~~)

---EOF

没有附上代码,因为实现MD5功能实在太简单了,关键的就是不要破坏性的增加或者替换功能,这才是重中之重。

历经千辛万苦,终于打开了远程桌面

历经千辛万苦,终于打开了远程桌面

参考我上一篇文章。其实之前在网上找了很多教程和文章,但都没有打开成功。几乎所有的文章都试了。今天在测试本地的时候发现也不正常了。然后又找到网上的代码进行尝试。然而也都失败了。

搜索那个错误提示,反而是找到了官网的介绍:

1、https://support.apple.com/zh-cn/HT201710
2、https://support.apple.com/zh-cn/HT209161

然后才整理出了上一篇文章。打开两台电脑,一点点的在运行和查看【系统偏好设置】里的状态,确实【screen sharing】这个勾没有打上,打上的,反而是【remote managent】这个。然后就能远程了。这时候我再ssh 连上家里的mac mini,先执行关闭,再执行打开。。直接打开 vnc,用基于tailscale的局域网IP连接上了,然后退出,用vnc连接基于frp的端口,同样打开了。(要知道。。。。为了折腾这个,我已经整了半年多,其实之前都放弃了。)

真正是山重水复疑无路,柳暗花明又一村啊。

mac 开启远程桌面

mac 开启远程桌面

开启:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setmenuextra -menuextra yes -privs -all -setvnclegacy -vnclegacy yes
关闭:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -off
但会提示:
Warning: macos 10.14 and later only allows control if Screen Sharing is enabled through System Preferences.
能不能成,还是要看运气!!!
老技巧:页面不允许被选择、被复制

老技巧:页面不允许被选择、被复制

也不知道怎么分类,就放在js分类下了。

有时候,为了防止一小部分人喜欢手工CP,于是可以通过一些简单的办法让他们无法选择网页上的内容,也就变相的无法复制了。
偷懒的方法就是直接改CSS:
* {
/* moz-user-select: -moz-none; */
-moz-user-select: none;
-o-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
稍复杂一点。在body里加入:<body οncοntextmenu="return false;" onselectstart="return false">
嗯。用JS的话:
document.οncοntextmenu=function(){return false;};
document.onselectstart=function(){return false;};
简单粗暴,却能解决大部分的问题。但作为一个技术勃客,我还是不屑这么做,但确确实实有部分网站需要这样处理。但仍然是属于防君子不防小人


nodejs 使用 n 来切换版本

nodejs 使用 n 来切换版本

在运行项目的时候,报错,说是不支持当前15.x的版本,请使用10,12,14的版本。于是yarn global add n,安装了这个简单的切换版本库。然后运行sudo n 14,自动安装了14.x的版本。

然而死活版本切换不过去。发现原来的node是在homebrew下安装的,于是选择卸载node,homebrew uninstall node,再运行sudo n 14,版本切换成功

n 和 nvm都是node下面多版本的管理工具。但n工具 确实比较简单:n +版本号,会自动下载指定版本。如果直接运行n,可以选择和切换当前的版本。当然这个是全局的,不能在指定的目录下指定node版本。如果临时用的时候,可以用n use 版本号来处理。

ssh跳板机配置

ssh跳板机配置

很多时候我们都不能直接访问内网机器,一般情况下,我们都是先登录跳板机,然后从跳板机上再进行操作。但这样,很容易在跳板机的history里留下记录。而且,如果有时候临时传文件,就相当于要处理两次:上传到跳板机=》传到目标机。

其实如果利用sshconfig进行一下配置,就可以直接操作这种行为:

Host bg-a
HostName 1.2.3.4
Port 22
User ubuntu
IdentityFile ~/.ssh/prod-ubuntu

Host web-a
HostName 192.168.200.2
Port 22
User ubuntu
IdentityFile ~/.ssh/prod-ubuntu
ProxyCommand ssh -q -W %h:%p bg-a

然后你就可以使用 ssh web-a 直接连接到内网的服务器(透过 bg-a),或者 scp /xxx/xxx/x.tar.gz web-a:/tmp/ 这样的操作也支持。【上述内容,其实我本地的sshconfig也有类似操作,只是说我要COPY出来还要修改内容,所以就直接复制线上的】

至于ssh config文件怎么配置,网上有很多教程文章,比如:https://www.toutiao.com/i6700025110645965324/,

其他参考文章:

1、https://github.com/zxdvd/blog/blob/master/content/shell/%E7%94%9F%E4%BA%A7%E5%8A%9B%3A%20ssh%E8%B7%B3%E6%9D%BF%E6%9C%BA%E9%85%8D%E7%BD%AE.md

2、https://github.com/meolu/walle-web/issues/265

3、https://zhuanlan.zhihu.com/p/74193910 (https://mp.weixin.qq.com/s/jUYMulyl0xoPp-Vi3QJ3-Q)

4、https://blog.csdn.net/CityzenOldwang/article/details/77097703 ,这一篇里对.sshconfig的一些配置说明:

# man 5 ssh_config
# vim .ssh/config
Host *
ForwardAgent yes # 默认转发密钥
PasswordAuthentication yes # 允许密码登陆
StrictHostKeyChecking no # 不自动接收公钥,如果设置为 yes,ssh 就不会自动把计算机的密钥加入到 .ssh/known_hosts 文件,并且一旦计算机的密钥发生了变化,就拒绝连接。
HashKnownHosts yes # 将访问过的 hosts 以 hash 的形式存放,降低被入侵后信息暴露的风险
Compression yes # 压缩传输,取值on/off/force。在 scp 等传输文件的情况下提高传输速度
ServerAliveInterval 60
ServerAliveCountMAx 5
laravel 插件推荐:kitloong/laravel-migrations-generator

laravel 插件推荐:kitloong/laravel-migrations-generator

Laravel 默认是通过migration来创建表,大部分情况下这并没有问题,然而如果是针对一个已经存在的项目想要做迁移,那就需要将DB转换成migration文件。早些年没有什么特别好的,写debugbar的那位写了一个,但已常年不更新了。后面sequel pro有一个插件,可以将指定的表转成migration文件,但这会有一个小小的问题,即:得安装sequel pro,还得更新插件。那究竟 没有一个好的laravel插件来做这个呢?

其实现在已经有了,打开:https://github.com/kitloong/laravel-migrations-generator,你就会看到了。在最初的时候,我是搜索到这个:https://github.com/barryvdh/laravel-migration-generator,上面有提示切换成:https://github.com/Xethron/migrations-generator,然而,这个大神现在也不更新了。在laravel 5之后就没有再更新过。现在这个kitloong的就是基于Xethron的库而进行更新的。

用法也很简单,composer require --dev "kitloong/laravel-migrations-generator",然后直接命令行运行:php artisan help migrate:generate,可以看帮助。如果没有特别的需求,直接php artisan migrate:generate完事。如果只想更新指定的表,那就:php artisan migrate:generate -t tablename

不多说,试试看吧

实话实说,小米带鱼屏真比同价位其他要好

实话实说,小米带鱼屏真比同价位其他要好

没错就是这样的标题,小米带鱼屏,上市的时候,1999还是2199来着。分辨率3440x1440,时隔一年,反而涨价了。但即使这样,你看看同价位JD上面,什么AOC也好,HKC也好,3440的分辨率的显示器,明显比小米要贵上300~500。

这么一看,感觉小米还是良心商家。当时质量也挺不错的。然而因为我不小心给摔坏了。再看的时候,已经舍不得买了,毕竟家里显示器也3~4个了。

带鱼屏用久了。感觉确实有点象斗鸡眼,但,写代码和调试真的方便呀~~~~~

uniapp custom tabbar

uniapp custom tabbar

事先申明,因为我是只在微信小程序下进行开发,所以下述内容都是基于微信小程序的。官方有定义教你怎么自定义TabBar,https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html,那么在uni-app里怎么处理呢?dCloud也有提及:【微信小程序自定义tabbar:微信提供一直基于webview自定义tabBar的方案。该功能体验不佳,不太推荐使用。如果要使用,参考微信文档,项目根创建 custom-tab-bar 目录,注意里边的代码是 wxml,wxss,不是 vue,uni-app编译器会直接拷贝该目录到微信小程序中】参考:https://uniapp.dcloud.io/collocation/pages?id=tabbar

OK,回到开始,我们一步一步来

1、参考【https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html】,在uniapp的目录下创建custom-tab-bar目录,创建:index.js/json/wxml/wxss文件(如果要偷懒,可以直接用官网上的示例工程打开,将文件复制过来即可)

2、配置pages.json,在原有的配置中增加:custom:true,当有这个值的时候。小程序将不会生成标准的tabbar。即使增加了这个KEY,原来配置中的list也不能去掉,毕竟,switchTab就是从tabbar.list中来进行判断的

3、打开工程,你会发现tabbar已经存在于每一个页面了。但这里会带来另一个问题,即:uni.hideTabbar()无效了(这个后面再说。。。)

4、官方例子中用了this.getTabbar。这个方法在UniApp是无法使用的,但可以曲线救国:this.$mp.page.getTabbar,将原来的判断全部改成这样就可以按照官方示例进行使用了。

5、如果在运行过程中,发现tabbar一直在闪烁,那么看一下你icon,是不是81px。我之前放的32px\48px的icon,都会导致tab切换的时候闪烁。换成81后就好了。