Vue Markdown Echart 前端    2021-07-21 19:28:33    12    0    0
最近碰到一个需求,在vue项目中把markdown渲染成网页展示,并且支持图表展示。markdown的渲染好说,使用markdown-it即可。数据图表就棘手了。常见的图表展示就是用的echart,而且echart以前用过,好上手。但是在markdown-it里面展示出来我就没试过了。在markdown-it的插件中找到两个插件: ![](/api/file/getImage?fileId=60
Linux Go    2021-07-16 18:39:49    18    0    0
OS:ArchLinux go version:go1.16.5 linux/amd64 GoLand version: 2021.1.3 Debug错误信息: ``` API server listening at: [::]:40487 could not launch process: could not open debug info Debugger finished with t
Rust    2021-04-14 14:29:32    33    0    0
# Vector ## 新建vector ```rust let v: Vec = Vec::new(); let v = vec![1, 2, 3]; ``` ## 修改vector ```rust #![allow(unused)] fn main() { let mut v = Vec::new(); //一定要mut v.push(5); } ``` ## 访
Rust    2021-04-14 13:15:05    46    0    0
# 所有权 所有运行的程序都必须管理其使用计算机内存的方式。 有些语言具有垃圾回收机制,在程序运行时不断地寻找不再使用的内存(比如Java); 有些语言中,程序员必须亲自分配和释放内存(C/C++)。 Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。在运行时,所有权系统的任何功能都不会减慢程序。 ## 所有权规则 首先,让我们看一下所有权的规
Rust    2021-04-07 19:45:08    36    0    0
# 变量与可变性 ## 可变性 > 变量默认是不可改变的(immutable)。这是推动你以充分利用 Rust 提供的安全性和简单并发性来编写代码的众多方式之一。当变量不可变时,一旦值被绑定一个名称上,你就不能改变这个值。 ```rust fn main() { let x = 5; println!("The value of x is: {}", x); x =
Rust    2021-04-01 11:42:33    37    0    0

安装

按照教程指导,应该执行命令来
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh 来进行安装。。。不过我看Arch Linux已经打包了,那就用Arch仓库里的吧。

  1. sudo pacman -S rustup
  2. rustup toolchain install stable

第一条命令会把rustup安装到/usr/bin/rustup,第二条命令会把rust工具链(比如编译器,调试器)的稳定版安装到~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/

Windows用户需要下载Rust安装工具,如果直接执行安装工具会要求安装msvc,除非只想生成GNU ABI的程序。因此,安装Rust之前,需要去微软网站上下载msvc安装器

如果网络环境不好,这里有一份rustup-init.exe的备份。msvc太大了,自行解决

rust离线安装包下载地址:https://forge.rust-lang.org/infra/other-installation-methods.html#standalone-installers

Hello World!

当学习一门新语言的时候,使用该语言在屏幕上打印 Hello, world! 是一项传统,我们将沿用这一传统!

对于单文件的程序,可以直接新建一个文件main.rs,然后写入以下内容

  1. fn main() {
  2. println!("Hello, world!");
  3. }

保存并退出后,执行rustc main.rs,就会生成一个名字为main的可执行文件。执行./main即可执行文件,此时会在终端看到输出。

  1. Hello, world!

注意:
1. 当看到符号 ! 的时候,就意味着调用的是宏而不是普通函数
2. Rust 的缩进风格使用 4 个空格,而不是 1 个制表符(tab)。

Hello, Cargo!

那么对于多文件的大项目要如何管理/构建呢?Rust官方

前端    2020-12-19 12:00:08    218    0    0

手机上买了极客帮的课程,但是手机屏幕太小了,希望在电脑上看。但是电脑上打开极客帮会弹窗,不管是Linux还是ChromeOS上,都会有弹窗,而且每打开一个页面都会弹。

极客帮ChromeOS弹窗

Geekbang Linux弹窗

作为一个刚学了几天前端的新手。。。我决定解决一下这个问题。在Chrome中打开开发者工具,看看到底发生了什么。发现console下有个报错。

console log

报错内容Not allowed to launch 'bytedance://dispatch_message/' because a user gesture is required.。不难发现是字节跳动想打开一个东西,我只是想看看极客帮,把头条屏蔽了还是没什么问题的。那么问题来了,这是哪个文件发出来的呢。

切换到Network,refresh一下。

toutiao

toutiao.js后就dispatch_message了,证据确凿,于是点了一下toutiao.js,复制了以下Request URL。加入广告拦截插件,比如AdBlocks,顺利解决。

adblocks

2020-11-25 04:53:25    101    0    0

0. 背景

这个项目是配合NotiSyncNotiSync-Server使用的,关于这两个项目的介绍在这里。在做到通知同步的通知的同时,增加手机信息概览和短信回复的功能。下面是使用方式的简单展示

1. 使用方式

程序启动时会直接进入一个类似于登录页面的界面,这里就是配置信息,包含通信协议,服务器地址,服务器端口,和UUID。协议支持http和https,地址可以是IP地址,也可以是域名。
LoginView

配置好后即可使用用登录按钮登录。

登录后即进入主界面:
Detail

左侧是软件能查看的信息,分别是手机详情,手机通知和手机短信。主界面默认停留在手机详情页。

当点击左侧的Notifications时,进入手机通知页,这里将显示所有在本客户端启动之后手机收到的通知:
Notifications

当点击Messages时,进入手机短信页。这里将显示所有的手机短信,并且可以当场回复短信。在最右侧下方输入框输入后点击Send按钮,短信就会发送出去。如果想要发送的联系人不在已有对话框中,可点击New Message以新建短信,在输入对方电话号码后即可向对方发送短信。
Messages

2. 注意事项

v0.2依然不是正式版,在短信上存在功能性Bug,界面性能也需要优化。

NanoPi R2S R2S systemd Linux Ubuntu 计算机网络 软路由    2020-11-25 01:12:03    178    0    0

0.背景

旁路由折腾熟悉之后,我又开始觊觎软路由的方便,于是不久前借着双十一,下单了早有耳闻的NanoPi R2S,177大洋,有散热片有风扇有外壳,还算划算。奈何我跟OpenWRT八字不合,上次树莓派是半天LUCI进不去,这次是FriendWRT官方固件砍掉了tproxy模式。在重新编译固件依然无法成功富强之后。我又掏出了祖传技能,直接用了FriendlyCore(基于Ubuntu)秒杀了富强网关的需求。这个方式也非常通用,不只是R2S,也不仅限于Ubuntu,理论上可以将任何一个双网口的运行Linux并且使用Systemd的机器变成软路由。

1. 配置Wan侧

刷好FriendlyCore之后直接插卡开机,然后就能在路由器管理页面看到该设备的ip地址。我们ssh上去就可以进行配置了,默认用户名和密码都是pi。

配置文件参考:
systemd-network

对应这台机器就是直接在终端执行

  1. sudo vim /etc/systemd/network/eth0.network

然后把下面的内容复制进去。

  1. [Match]
  2. Name=eth0
  3. [Network]
  4. DHCP=ipv4

2. 配置Lan侧

一个软路由本质上就是开启了DHCP服务,DNS服务,网络层包转发的多网口计算机。因此在常规的配置中,通常会配置dnsmasq来做DHCP服务器,并同时担任DNS服务器。然后通过sysctl打开ip包转发,然后用iptables完成包的转发。

但是现在,systemd都包含了这些功能,不需到别的地方到处配置,也不需要再多装什么包,只需把systemd配置好就能完成这些。

我们依然是进入终端,执行

  1. sudo vim /etc/systemd/network/eth1.network

然后把下面的内容复制粘贴进去后,保存并退出。

  1. [Match]
  2. Name=eth1
  3. [Network]
  4. Address=192.168.25.1/24
  5. DHCPServer=true
  6. IPMasquerade=true
  7. [DHCPServer]
  8. PoolOffset=100
  9. PoolSize=50
  10. EmitDNS=yes
  11. DNS=223.5.5.5

/etc/syst

树莓派    2020-08-27 14:46:27    303    0    0

本来想在Ubuntu上编译安装Kodi,实现类似LibreELEC的效果。折腾一天发现和apt安装区别不大,不仅卡,而且Ubuntu这个是Server版本,默认最多1080分辨率,看起来很模糊。本文仅记录折腾过程。

操作步骤主要参考:
xmbc项目README

1. 下载源代码

  1. git clone https://github.com/xbmc/xbmc kodi

2. 安装依赖

  1. sudo apt install autoconf automake autopoint gettext autotools-dev cmake curl openjdk-8-jre gawk gcc g++ cpp gdc gperf libasound2-dev libass-dev libavahi-client-dev libavahi-common-dev libbluetooth-dev libbluray-dev libbz2-dev libcdio-dev libcec-dev libp8-platform-dev libcrossguid-dev libcurl4-openssl-dev libcwiid-dev libdbus-1-dev libegl1-mesa-dev libenca-dev libflac-dev libfontconfig1-dev libfmt-dev libfreetype6-dev libfribidi-dev libfstrcmp-dev libcrypt-dev libgif-dev libgles2-mesa-dev libglew-dev libglu1-mesa-dev libgnutls28-dev libgpg-error-dev libgtest-dev libiso9660-dev libjpeg-dev liblcms2-dev liblirc-dev libltdl-dev liblzo2-dev libmicrohttpd-dev libmysqlclient-dev libnfs-dev libogg-dev libomxil-bellagio-dev libpcre3-de
1/2