安装Telegram-cli

先把仓库源码clone下来(更换为kenorb-contrib,源仓库无法build):

1
git clone --recursive https://github.com/kenorb-contrib/tg.git && cd tg

再安装相关依赖 (ubuntu/debian):

1
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev libpython3-dev libgcrypt-dev zlib1g-dev lua-lgi make -y

然后,开始编译:

1
2
./configure
make

换源后不会出现以下依赖问题,可忽略

这一步可能会出问题,如果在执行./configure 时报错zlib error, 则应通过安装zlib依赖来解决:

1
sudo apt install zlib1g-dev

如果是报openssl error, 则是因为openssl的api升级了,可通过安装如下指定版本号的libssl来解决:

1
sudo apt install libssl1.0-dev

使用

可通过执行如下代码启动Telegram-cli客户端,注意,要在科学上网环境下执行!

1
bin/telegram-cli -k tg-server.pub

如果没有配置好科学上网环境,启动之后是用不了的,可以通过proxychains 让命令行走代理(proxychains的配置之前有讲过,可以翻一下之前的文章):

1
proxychains bin/telegram-cli -k tg-server.pub

第一次启动,会让你输入手机号,别忘了+86国际区号哦,然后一路验证。验证完成后就可以使用了,这里列出一些常用语法:

1
2
3
msg <peer> sometext #例如:msg @somebody hello
send_file <peer> file_path #例如:send_file @somebody /root/tg.log
help # 更多用法直接输入help

自动化

利用Linux下的crontab设置如下定时任务,可完成定时发消息的任务

1
telegram-cli_PATH/bin/telegram-cli -W -e "msg <peer> sometext"

首先是配置一个科学上网的环境,可以通过安装目前比较流行的V2ray或ShadowsocksR来实现。其次,需要让命令行中执行的程序的流量走代理通道,这个可以通过安装proxychains来实现。最后,开始享受你的愉快探索之旅吧!

阅读全文 »

python中分好多变量,全局变量、局部变量、静态变量(类变量)、实例变量,整得人有点懵,今天就腾出时间给它来一次总结。

阅读全文 »

树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨在促进落后地区学生计算机编程教育。虽然树莓派只有一个卡片大小,但是计算机该有的功能它一样具备,加之它能耗小能够长时间待机,而且价格便宜,因此树莓派不少搞机人士的青睐。

本文主要介绍一下,我购买树莓派4b的基本配置及其用途,当然,还会现身说法,讲述一下我踩过的坑。

阅读全文 »

我们知道在python中for循环常常和range函数一起用,如for i in range(100): ,其中range函数有由三个参数控制,起始值、终止值、步长,返回的是一个可迭代对象,该对象并非列表,而且是左开右闭的,也就是右边的数是不取的,比如range(2,3),那么能取到的值只能是2。

在素数判断中,我们判断一个数是否是素数,我们需要对这个取余,从2开始一直到这个数的平方根,如果出现余数为零的情况则判断它不是素数。那问题来了, 如果判断的数从2开始,那该从range(2,2)里遍历,注意到没有range(2,2)的左右边界是相等的,那么它会返回结果包含哪些数呢?还是会报错?

阅读全文 »

python函数中传入数值或者字符串等不可变类型时,在函数内修改传入参数的值,传入的参数的在原始值并不会跟着变,但是当你传入的是列表、字典等可变类型的数据时,在函数内修改他们的值,这些变量的原始值会跟着一块变。

阅读全文 »

python中循环语句有两大类 ,for循环和while循环。for循环常用于循环次数已知的情况,而且常常和range函数搭配使用;而while循环常用于循环次数未知的情况,利用条件判断来进行循环,只要条件为真则进行下去。

else、break和continue是常常搭配循环语句一起使用的,其中break和continue常常和if语句构成一个判断来改变循环的执行情况;else则是当循环体正常结束(break没有发生)时,提供一个最终的判断执行,通俗地说就是“直到……才”。

阅读全文 »

一个对象在其生命周期内,如果保持不变,就是hashable(可哈希的),常见的可哈希的数据类型有数值、字符串、列表;而内容可更改的,比如列表、字典、集合等则不是。

阅读全文 »

多变量线性回归

多变量线性回归和单变量线性回归大同小异啦

符号定义

m表示训练集的规模,n表示样品的特征数量,x的上下标分别表示第几个样品的第几个特征

多变量线性回归表示

假设方程表示如下:

多变量线性回归方程

注意啦,为了方便计算我们默认x0 = 1

其向量表示形式如下:

多变量线性回归方程的向量形式

梯度下降