自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

devilyouwei - 黄有为

Talking is cheap,show me the code!

  • 博客(85)
  • 资源 (4)
  • 收藏
  • 关注

原创 OpenWRT安装docker内核kernel版本不够

【代码】OpenWRT安装docker内核kernel版本不够。

2023-05-15 18:58:10 8859 1

原创 一起打造漂亮的Ubuntu——2023最新版Gnome44

2023年,来美化你的Ubuntu!

2023-05-13 14:10:54 10451 3

原创 Javascript正则解析出代码的函数体

How to use regex to capture and extract "class/function" context in source code?如何使用正则表达式提取代码中的函数内容,本文以Solidity为例,提取函数,合约代码体。最关键的是要解决嵌套匹配问题。

2022-06-30 14:29:32 1475

原创 Solidity合约内创建合约以及引用其他合约的总结

本文总结了在以太坊智能合约中使用Solidity在合约内创建合约以及引用其他合约的方法,包括了如何使用mochai进行测试的方法。在这之前先明白一个比较:Contract{}相当于面向对象语言的类当部署后获得到address后,address相当于对象,address 0x.......本身就类似指针地址然后我们讨论下Solidity代码中对合约类,合约对象的操作。Solidity首先区分下三种写法:import 'ContractB.sol';ConractB B = new Con

2022-02-09 20:31:25 10826

原创 docker停止并删除所有服务容器

查看所有容器:docker ps -a停止所有容器:docker stop $(docker ps -q)删除所有容器:docker rm $(docker ps -aq)停止并删除:docker stop $(docker ps -q) & docker rm $(docker ps -aq)

2021-11-22 16:01:53 1382

原创 使用NodeJS开发Hyperledger Fabric笔记3——合约交互

经过了fabrict网络搭建,合约部署,接下里就是和合约交互。我们上一章节中部署了官方给的fabcar合约项目,这里我们还是以这套合约为例做简单的交互介绍。首先,fabcar的chaincode地址:https://github.com/hyperledger/fabric-samples/tree/main/chaincode/fabcar/javascript部署的方法上一章节介绍过,使用deployCC即可。这里我们假设已经部署好了fabcar的合约。新建项目首先我们创建一个npm项目,n

2021-08-19 15:36:38 6538

原创 使用NodeJS开发Hyperledger Fabric笔记3——部署合约

上一章步步分析了hyperledger fabric搭建网络节点和创建channel。本章基于章节2部署官方示例的智能的合约,也会一步步做分析。老规矩,先给出官方示例的下载网址:https://github.com/hyperledger/fabric-samples上图是我上一章搭建的fabric测试网,我创建了6个org节点,1个order节点。在fabric中智能合约叫做chaincode。第一步:打包chaincode什么是打包chaincode,就是打包你写的contract,你可以使

2021-08-18 16:58:09 397

原创 使用NodeJS开发Hyperledger Fabric笔记2——自建测试网

对上一章做个补充:如果我不想在root环境下测试fabric?其实只需要在创建并启动docker的时候用到root账户,当然由于up的时候是会创建一些文件,需要把这些文件放权,用chown先把文件转给普通用户,或者chmod -R 775,否则后续非root用户的操作都会被permission deny。另外上一章节主要是参Hyperledger官方的示例尝试网络启动。这里我做了一些研究,也试图通过NodeJS的API,fabric-client去操作peer和channel,但是最终发现非常的不方便,

2021-08-17 17:14:58 427

原创 使用NodeJS开发Hyperledger Fabric笔记1——Get Started

入门参考文档:https://hyperledger-fabric.readthedocs.io/zh_CN/release-2.2/test_network.html下载hyperledger官方的samplegit clone https://github.com/hyperledger/fabric-samples.gitdocker确认如果你的电脑上没有安装先安装dockersudo apt install docker.io docker-compose#或sudo snap i

2021-08-05 14:45:50 235

原创 Node.js流Stream如何解决字符串编码问题

这几天在开发P2P,使用了LibP2P作类库,在peer和peer通信过程遇到了一些问题,从一个peer传输到另一个peer的json字符串无法尽心JSON.parse。苦思良久,原来还是对流的概念没有学好,LipP2P的通信是采用流的方式交互的,所以输入的字符串是可能出现损坏的,尤其是中文,尤其是中文!必须强调的是我在第一次测试英文传输是没有出现问题,直到我输入了“你好”两个字,就出现了JSON.parse的“unexpected token error“。解决思路很简单,那就是利用编码encode这

2021-04-02 11:10:41 349

原创 使用typescript作node开发的配置

记录以下我个人的node开发配置,这是使用typescript的templatepackage.json{ "name": "typescript-template", "version": "0.0.1", "description": "an example for typescript node project, with prettier", "author": "devil", "main": "build/index.js", "scripts

2021-03-21 19:14:19 205

原创 打造优雅高效的zsh终端

记录下如何配置我的终端:顺便推荐下我的vim配置:https://github.com/devilyouwei/NVimmer安装ZSH和oh-my-zshzshsudo apt install zshoh-my-zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"一些配置zshchsh -s /bin/zsh修改~/.zshr

2021-01-01 15:39:17 216 2

原创 gitlab artifacts too large

gitlab在打包artifacts遇到:Uploading artifacts as “archive” to coordinator… too large archive 413 error网上看了很多方案,一般都是说在admin账户的setting下找到CI/CD,把Maximum artifacts size (MB)改大点当然这是其中一个点哈,但是除此以外还有两个地方也要注意下,不改的话,你会发现和我一开始一样,改了还是报这个错?让人匪夷所思。原来是gitlab自带了nginx反向代理,

2020-12-31 10:42:49 2349

原创 gitlab-runner docker基于sftp实现项目CI/CD自动部署

最近在给单位组建了CI/CD,要求对开发人员git的代码进行build和deploy,第一次从头研究CI/CD,真的踩了不少坑,尤其是deploy部分,卡了我三天了。起因环境:ubuntu物理机专门做CI/CD工具机,已经使用了docker-compose同时安装了gitlab和gitlab-runnergitlab用于代码托管,gitlab-runner用于run gitlab-ci,实现自动编译,测试,部署一步到位一台远程的WEB服务器,生产环境问题:由于gitlab-runner是在do

2020-12-24 21:14:42 506 1

原创 Linux LVM逻辑卷未占满磁盘分区【扩充LVM逻辑卷】

以前,安装linux按照传统的分区方式,选择custom,可以给磁盘划分出sda1, sda2…这些在linux里称之为分区,partition,然后分别把/,/home,/var等挂载到各个分区但是随着LVM技术的推广,现在安装ubuntu如果采用默认的格式化整个磁盘的方式来安装,安装完成后发现磁盘空间没有占满,原本500多G的磁盘现在整个/挂载只占用了200多G。造成这种后果很大一部分原因是原本有系统,重装系统导致。(不确定,至少我是这么经历的)如下图所示:df -hlsblk如上图

2020-12-23 16:10:54 650

原创 Docker-compose安装gitlab-ce带gitlab-runner实现CI/CD

在网上看了很多docker-compose联合安装gitlab,gitlab-runner的文章,都多少有点欠缺,也许是因为版本更新了。自己爬了两天的坑,现在把docker安装gitlab-ce和runner的坑填上。docker-compose.yml 配置文件version: '2'services: gitlab: image: 'gitlab/gitlab-ce:latest' restart: unless-stopped container_name: 'git

2020-12-23 10:50:25 775 3

原创 Docker搭建gitlab-ce并还原数据库

场景:原来的gitlab是使用ubuntu自带的apt安装的,已经使用了半年多,最后在阿里云的轻量级服务器上终于有些抗不住了,一天死好多次,主要问题就是无法进入网站。决定将gitlab迁移到内网,在物理机上运行,这下物理机的性能总是够了吧。刚好,原来通过apt安装的方式不好作云部署,我们组未来可能要上k8s,所以这里直接用docker来接盘gitlab,也是为了学习实践docker,docker也更加方便管理。第一步:备份数据是最重要的,迁移一定要万分小心,不要弄丢了代码库!gitlab-rake

2020-12-21 21:34:57 409

原创 Gitlab CI/CD upload artifact fails: too large

自部署gitlab在进行CI/CD时,出现文件过大问题,三步解决:第一,admin area修改:Maximum artifacts size这一步需要gitlab的管理员账户,左上角admin area settings, 然后左下角settings->CI/CD settings修改 Maximum artifacts size第二,修改gitlab.rbsudo vi /etc/gitlab/gitlab.rb找到...

2020-12-17 19:08:50 1267

原创 内网穿透:使用frp配置公网与内网服务器

单位的公网IP尚未申请,但项目需要上线进行测试。目前的状态是在研究院内部可以通过连接WIFI访问项目网站或接口,这称之为内网访问或局域网访问,开发者一回家就没办法访问了,为此,在开通公网IP之前我们先采用内网穿透允许外网访问我们的项目。内网穿透所谓内网穿透,就是将内网某些接口,服务暴露到外网访问。需要内网穿透的场景原因如下:这个世界的IPv4是有限的,现在已经严重不足,在没有普及v6之前,家用宽带,大部分企业宽带都是动态IP,就是电信预留一个IP池,当你宽带上线时分配一个公网IP,一旦宽带下线就回

2020-12-08 18:53:46 958

原创 WebViewJSBridge更换x5引擎

为了使不同手机在hybrid开发中保证相同的前端效果,对项目中使用的webview内核统一使用腾讯的x5引擎,本文记录如何将github上的JSBridge项目修改为基于x5引擎的webiew。准备第一步,clone原webview项目git clone https://github.com/wendux/WebViewJavascriptBridge.git也可以直接去上述网址下载下来。第二步,下载腾讯的x5引擎地址:https://x5.tencent.com/tbs/sdk.html建

2020-11-18 10:28:13 543

原创 ubuntu 20+的Android Studio 4.0卡死现象

条件描述:使用snap安装了Android StudioAndroid Studio自动更新到4.0+过程描述:一直都在用Android Studio写android应用,忽然某一天进入就卡死了,反复重启,logout都无法解决,重新安装,去官网下载压缩包,删除了配置文件,修改studio内存,甚至安装了KDE等桌面,依旧无果,折腾了3天,准备重装系统了。灵光一闪,切换了下输入法,欸,突然就不卡了,再切换回来又卡了,原来是sogou输入法惹得祸,进而推算跟fcitx可能也有关系,于是卸载了so

2020-11-12 13:47:29 1098 3

原创 Nginx反向代理作负载均衡的高压测试,一些错误

背景计算所里给大家配发了多台工作机,我给他们都按上了ubuntu linux,拿来做了一个web集群。我自己的电脑作为主反向代理服务器,将请求转发到同事的web服务器上,从而实现分布式的web请求,提高请求命中率,减少但个服务器压力。在进行高压测试的时候,以每秒大约10000次请求的JS脚本进行for循环请求,持续10000次,也就是1秒内发送10000次请求左右。测试的业务逻辑每一次请求的业务逻辑要实现两次数据库insert操作,一次O(n^2),n小于i等于8的循环,一次数据库update运算

2020-07-14 15:26:46 317

原创 自部署gitlab-ce与Nginx反向代理——基于宝塔BT

自部署gitlab-ce与Nginx反向代理最近单位需要配置自有的git仓库和平台,于是采用了gitlab ce版,并且用Nginx反向代理到了宝塔安装的gitlab上。这期间出现了很多配置上导致的问题,在此记录下,方便他人参考和自己再配置。第一,配置文件有哪些vi /etc/gitlab/gitlab.rbvi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml宝塔的配置文件,nginx第二,代理方案方案一:由于git

2020-06-18 14:53:48 2000

原创 Android踩坑之解决蓝牙无法回调问题-Kotlin示例

Android 6.0之后,蓝牙扫描回调需要获取模糊定位查询,Android 10之后更严格,需要获取精确定位。这些年Google对安卓的控制可谓是越来越严谨了,安全性也是越来越高。现在的问题是,当你的targetSDK>22的时候,扫描蓝牙就不不会有回调了,而且即使是在Manifest中添加了permission也依然无法获取回调,解决办法如下:TargetSdk降级到22——降级法android { compileSdkVersion 29 buildToolsVersio

2020-06-11 17:56:33 1630

原创 JsBridge踩坑之WebViewJavascriptBridge is undefined,找不到Bridge对象

最近在给单位搞一个android的hybrid开发外壳,使用kotlin语言。由于之前一直都只做hybrid的前端部分,基本只是调用原生壳里的android方法,Android方面开发经验不足,遇到一个webview中找不到bridge对象的问题,下面描述以下问题:在Hybrid开发中,一般使用第三方的bridge通信库,这种库可以使原生和前端webview进行信息传递和方法互调,我采用的JsBridge这个库,https://github.com/lzyzsd/JsBridge由于之前做过hybrid

2020-05-25 19:22:41 5999

原创 Android踩坑之 couldnt find libClingSDK.so

Android踩坑之couldn’t find “libClingSDK.so”在android开发中一些涉及到硬件级的API需要引入第三方的sdk,通常都是一个jar包搭配一个.so文件,.so文件用于处理底层交互,这是C/C++超原生级别的,而不是JVM级别的。最近在作Cling手环的app开发,踩到一个巨坑这里要点名批评Cling的公司,SDK老不说,给出的官方文档和demo没有任何的更新,害我为了这个破.so文件耗费了一天多。错误提示如下:2020-05-19 14:01:38.344 1

2020-05-19 14:20:31 693 5

原创 GDM, KDM, LightDM, SDDM的区别和安装配置

gdm3,kdm 和 lightdm 都是显示管理器。 它们提供图形化登录并处理用户身份验证。从维基文章中:显示管理器向用户显示登录屏幕。 当用户成功输入用户名和密码的有效组合时,会话开始。GDM,gnome系列的图形管理器sudo apt-get install gdm3sudo apt-get remove gdm3KDM,SDDM是KDE系列的图形管理器kdm 是kde管理...

2020-04-17 08:59:39 17387

原创 安装完ubuntu需要做得事

安装完ubuntu需要做得事今天刚升级了ubuntu20.04,需要做的系统环境配置挺多,这里把我的配置记录下。镜像和源为了科学的上网和学习,建议把所有环境的源换成国内的。ubuntu的apt源sudo vi /etc/apt/source.list请把所有ubuntu的地址替换为mirrors.aliyun.com,批量替换即可,注意:其他地方都不要动。以下是一个example,...

2020-04-12 17:31:22 326

原创 snap vs apt

snap安装和管理软件包,snap vs apt笔者用了十年的ubuntu,很喜欢用apt-get来安装软件。apt所采用的包是deb包,deb包最初是Debian Linux推出的,由于ubuntu基于debian,ubuntu将其集成到了apt包管理器中,apt可以自动解决软件之间依赖问题,对于当时的软件市场来说,是一个巨大的进步,ubuntu还造了一个类似apple store的软件商店出...

2020-04-10 11:25:24 6559

原创 E576: Failed to parse ShaDa file: extra bytes

E576: Failed to parse ShaDa file: extra bytes某天,当我打开neovim编辑时,突然下方跳出这么一行报错。查了百度并未查到合适解决方案,自己琢磨出了方法:移除用户目录local下share下的nvim目录,然后重新安装nvim即可!rm -rf ~/.local/share/nvim...

2020-04-07 13:32:42 752

原创 umi 模板依赖国际化(i18n)

umi 模板依赖国际化(i18n),请安装 umi-plugin-react 插件并开启 locale 。npm install umi-plugin-react --save-dev

2020-02-21 12:23:49 1122

原创 在shell下执行命令的方法

在shell下执行命令的方法1. #!/bin/sh语法:在shell.sh的开头写入#!/bin/sh一般的shell脚本就是这种用法。这种方法调用脚本开头的shell执行命令,子shell执行的时候, 父shell暂停运行,等待子shell运行完后返回父shell。子shell从父shell继承环境变量.但是子shell中的环境变量不会带回父 shell2. exec语法:exe...

2020-02-14 09:50:54 1312

原创 Ruby爬虫header发送cookie,nokogiri解析html数据

之前用php写过一个爬虫,同样是获取局域网的网站数据,这次我使用相同的网络环境,更低的电脑配置,使用ruby来再次爬虫,惊人的发现ruby使用自带的类库net/http爬取速度要远远超过php的curl_*函数。在循环爬取网页时,ruby的cpu占用率上达到了40-70%,而php仅仅使用了可怜的5-10%,目前还不知这其中的奥秘,理论上都是使用的单线程,差距这么大是解释器还是类库的差距呢?不管了,

2020-02-14 09:38:01 2486 1

原创 Ubuntu gnome安装Monaco字体,FontForge module is probably not installed

首先下载原始Monaco字体,注意我只找到了这一款在ubuntu的gnome下可见,其他的各种monaco即使安装了也看不到。https://gist.github.com/epegzz/1634235为了可以使得终端可以显示丰富多彩的nerd,我决定自己来为monaco patch上nerd字体在使用nerd-font自定义一套monaco字体的时候,ubuntu18.04报了这个错误,官...

2020-02-05 03:35:45 784

原创 Ubuntu全方位美化,定制教程

Ubuntu全方位美化,定制教程上一篇随笔聊了聊Linux图形界面的各种名词及其关系,解释了何为xserver,何为xclient,linux的图形界面是如何工作的,Linux图形软件的多样性。因此,linux的图形界面是高度可定制的,从启动界面到按钮图标,任何一样东西都是可以自定义的,因为他们只是模块化的软件,你可以安装甚至是自己写一套,针对KDE和gnome环境,网上提供了很多自定义教程,同...

2020-02-04 12:37:51 1868

原创 Linux那些事——GTK+, Qt, Gnome, KDE, xWindow, xOrg区别

Linux那些事——GTK+, Qt, Gnome, KDE, xWindow, xOrg区别Linux不仅内核开源,系统配置也是高度可定制化的,其中就包括我们所熟知的图形界面,从桌面环境,主题,字体,Icon我们都可以通过修改Linux的配置文件来修改。这就是为什么我选择Linux的理由,高度的个性化。用了8年多的Linux桌面发行版,一直没有好好研究一下xWindow这个东东,今天拿出来好...

2020-02-01 10:44:16 1907

原创 一个类似ThinkPHP的Node.js框架——QuickNode

QuickNodeNode.js从QuickNode开始,让restful接口开发更简单!PHP的MVC作为一名曾经的PHP开发者,我也有过三年多的thinkphp使用经验,那是我学习PHP接触的第一个MVC框架。ThinkPHP目前也算是国内最流行的PHP框架了吧,于我说来,该框架给我留下的最深的印象就是在创建新控制器和新方法时候的简单便捷,以及她经典的/Controller/Action...

2019-11-28 06:41:50 818

原创 关于ecshop Strict,notice,deprecated报错无法关闭问题

如果使用5.3以上版本的php按照ecshop很容易遇到如下一些报错问题:preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in这些问题按经验说可以通过修改php.ini中的error_reporting来屏蔽,例如:error_reporting =E_ALL & ~E_...

2019-05-04 14:17:53 249

原创 tfjs-node初体验:训练模型的存储

JS,一门从浏览器兴起,却不止于浏览器的脚本,个人一直认为其是最有潜力的脚本语言。不只是因为ES6优雅的语法,更重要的是其易上手,跨平台的优点。Node将JS从browser带去了client是革命性的,使得常常被冠以“浏览器脚本”的JS成为一门足以和PHP,PY匹敌的通用性脚本。关于tensorflow,这里就不多做介绍,简而言之就是一个深度学习的框架,而为众人所知的是他对python的支持...

2019-03-31 17:13:08 1262 2

原创 windows下的tfjs-node安装异常总结

大约有半年没有写博客了,奔波于上海这座魔都之中。险些忘了自己是个有梦想的全栈工程师书接上回,由于个人非常厌恶python的语法,半年前发现了tensorflow.js这个宝贝(下简称tfjs),喜出望外,从18年4月Google发布的0.0.1版本至今,都没有一个完好的node版本,之前我就有吐槽过这个问题,深度学习居然只能在browser中跑,而即使在node中引入tfjs也无法保存训练模型,...

2019-03-29 11:58:24 3866 6

大神项目完整代码

“大神”项目为个人开发项目,包含了登陆注册,文件资源上传,地图导航等功能,仅供参考,请勿用于商业用途 之前版本犹豫后端服务器未缴费停止了服务,导致前端无用了,现在已经恢复正常,请自行注册和登陆测试! 随时跟进代码github:https://github.com/devilyouwei/dashen

2018-06-07

node.js登陆注册案例

node.js结合mangodb建立登录注册示例项目,包括express,模块化架站,express-session使用等

2018-02-14

《第一行代码》酷欧天气(kotlin版)

使用Kotlin对《第一行代码:Android》——郭霖,重写了最后的实践”酷欧天气“

2017-05-24

英汉大辞典mysql数据库

导入好的英汉词典sql文件,方便中英对照,80000+词库

2017-04-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除