查找替换正则表达式

查找所有空行 ^\s*\n 查找所有行号 \d*. [[:digit:]]\d*. \d*、 [[:digit:]]\d*、 查找括号或中括号内容 所有括号及内容: \((.*?)\) 括号及内容包括换行 \((.*?)\n\) 所有中括号及内容 \[(.*?)\] 数字 两位数 [0-9][0-9] 或者 /d/d

2020-08-31 · 1 min · Duke Yin

实现五种 CSS 经典布局

Via http://www.ruanyifeng.com/blog/2020/08/five-css-layouts-in-one-line.html 页面布局是样式开发的第一步,也是 CSS 最重要的功能之一。 常用的页面布局,其实就那么几个。下面我会介绍5个经典布局,只要掌握了它们,就能应对绝大多数常规页面。 这几个布局都是自适应的,自动适配桌面设备和移动设备。代码实现很简单,核心代码只有一行,有很大的学习价值,内容也很实用。 我会用到 CSS 的 Flex 语法和 Grid 语法,不过只用到一点点,不熟悉的朋友可以先看看教程链接,熟悉一下基本概念。每一个布局都带有 CodePen 示例,也可以到这个网页统一查看。 本文是跟极客大学合作的前端学习讲座的一部分,详见文末说明。 一、空间居中布局 空间居中布局指的是,不管容器的大小,项目总是占据中心点。 CSS 代码如下(CodePen 示例)。 .container { display: grid; place-items: center; } 上面代码需要写在容器上,指定为 Grid 布局。核心代码是place-items属性那一行,它是一个简写形式。 place-items: <align-items> <justify-items>; align-items属性控制垂直位置,justify-items属性控制水平位置。这两个属性的值一致时,就可以合并写成一个值。所以,place-items: center;等同于place-items: center center;。 同理,左上角布局可以写成下面这样。 ...

2020-08-30 · 1 min · Duke Yin

PHP判断数组里是否有某值

in_array() bool in_array ( $val, $array_name ,$mode ) in_array()输出布尔值真或假,作为某值是否在数组里的判断。 比如: <?php $marks = array(100, 65, 70, 87); if ( in_array("100", $marks,true) ) { echo "found"; } else{ echo "not found"; } ?> 但是,in_array()对于有子数组的数组无能为力,如果需要查询更底层或更复杂的数组,需要构件一个自定义函数进行查询: <?php function in_array_recursive($needle, $haystack) { $it = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack)); foreach($it AS $element) { if($element == $needle) { return true; } } return false; } 如此一来,我们就能使用 in_array_recursive() 代替 in_array() 进行子数组的查询,例如: ...

2020-06-01 · 1 min · Duke Yin

Ubuntu安装Mastodon

从源中安装 via https://docs.joinmastodon.org/zh-cn/admin/install/ 创建你自己的Mastodon站点的教学指献。 前提条件 一台你有root访问权限的运行 Ubuntu 18.04 的机器一个用于Mastodon站点的域名(或一个子域名),例如:example.com一个电子邮件发送服务提供商,或其他SMTP服务器 你需要使用root用户运行命令。如果你现在不是root用户,请切换至root用户: su - root 前期准备 非必须 开启SSH直接root用户登录 以ubuntu用户登录后,给root添加密码: sudo passwd root 修改SSH设置文件: sudo nano /etc/ssh/sshd_config 找到PermitRootLogin设置为yes PermitRootLogin yes ctrl+x选择y保存 回车将修改写入文件 然后重启ssh守护进程 sudo service ssh restart 软件仓库 首先确保已经安装curl: sudo apt install curl Node.js curl -sL https://deb.nodesource.com/setup_12.x | bash - Yarn curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list 软件包 apt update apt install -y \ imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \ g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \ bison build-essential libssl-dev libyaml-dev libreadline6-dev \ zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \ nginx redis-server redis-tools postgresql postgresql-contrib \ certbot python-certbot-nginx yarn libidn11-dev libicu-dev libjemalloc-dev 安装 Ruby 因为使用 rbenv 可以更容易的获得正确的版本并在新版本发布后进行更新,我们将使用 rbenv 来管理Ruby版本。rbenv 必须安装在单个Linux用户中,因此,我们首先需要使用以下命令创建一个Mastodon用户: ...

2020-05-28 · 2 min · Duke Yin

[FIXED] bash: rbenv: command not found

Just copy paste these commands as they are in a new Terminal. cd ~ rm -rf .rbenv/ git clone git://github.com/sstephenson/rbenv.git .rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build source ~/.bashrc

2020-05-26 · 1 min · Duke Yin

How can I stop Filezilla changing my linebreaks?

In FileZilla 2.2.32, go Edit > Settings > File transfer settings > ASCII/Binary. Set it to always binary: that should do the trick. In FileZilla 3.5.0 the setting is in Edit > Settings > Transfers > File Types > Default transfer type > Binary.

2020-05-23 · 1 min · Duke Yin

Crash when launching, opening, closing files, or clicking the ribbon in older releases of AutoCAD

Issue: When launching the program, opening or saving a file, or clicking a ribbon or menu command in AutoCAD 2010, 2011, 2012, 2013, 2014 and 2015, a fatal error occurs and the program crashes, showing a message similar to the following: AutoCAD Error Aborting FATAL ERROR: Unhandled Access Violation Reading 0x0000 Exception at d4bea3e3h. ...

2020-04-07 · 3 min · Duke Yin

Weather API

和风天气 https://console.heweather.com/my/service https://free-api.heweather.net/s6/weather/now?location=99.14818142977285,25.099974185851767&key=c5d5cc117d2a40f4a8f8b1263abe46b9 Open Weather Map https://openweathermap.org/ http://api.openweathermap.org/data/2.5/weather?lat=25.09993924380904&lon=99.14830842043732&units=metric&appid=48884ac7aa0905ddd3e02cbe0981d5c6

2020-03-08 · 1 min · Duke Yin

坡屋面

四分水 脊高= 跨度/4 五分水 脊高 =(跨度/2)*0.55

2020-03-03 · 1 min · Duke Yin

城市居民低调极简储备清单

尽量低调 生存狂储备物资,遇到最大的麻烦是周边人的各种异样眼光。他们不明白为何要储存这么多东西。家人也很难理解,总会劝你把这些东西扔掉。 若是外人到你家做客,看到你的储备,当面或许敷衍你几句,跟你说:“啊,你真是个有准备的人”,背后就会跟同事吐槽,说你脑袋坏了,精神状态不正常。很快,你的上司也知道你脑袋坏了。 你永远无法改变那些认为你有病的人。你不是传教士,没必要天天给他们讲道理。你没有使命去帮助拯救那些不信你的人,但是他们会以高高在上的姿态认为你杞人忧天。这些人你又不便公然蔑视他,让他下不了台。所以,最好的办法,是不要跟他们说生存主义。也不要让他看出来你是个生存狂。 你要低调得跟普通人毫无区别。别人到你家来看不到任何特殊之处,没人知道你为生存做了什么准备。这就需要很高的收藏技巧。你要储备足够的物资,却又极其低调。 储水设备 水是生命之源。只要有水,你就能活一个月。如果还有食物,即使在家里,也可以活很多年。 如果亲戚到你家,看到客厅里80箱矿泉水,整整960瓶,墙角还有十个麻袋的物资,大概会觉得你真的疯了。但是,可以在阳台放一个巨大的水缸养鱼,里面放几根水草。鱼缸能多大就多大。 如果阳台屋顶可以放水塔,你还可以买一个不锈钢或聚乙烯的「水塔」,这是自来水停水时代人类经常用的东西。但在非常时期,这一吨水可以给你带来很多安全感。 这种不锈钢的大水塔,你也可以在阳台再放一个。别人问起来,就说当年屋顶的老水箱撤了,舍不得扔。你也可以说为了给鱼缸换水,自来水需要放在大水箱里释放掉氯气,不然鱼会死掉。总之 ,这个借口要合情合理,不要让别人认为你有精神病。 老式房子的屋檐下,你要放一个水槽,水槽的水,必要时可以改道通到你家阳台水缸。下雨的时候,可以接水。 即使是现代楼房,你也可以在屋顶上从落水管的位置偷接一条细点的管子到你家,下雨的时候分点水。 有了这样的供水系统,净水处理设备,你只需要明矾和次氯酸钠(或二氧化氯)就可以。其他的都是多余。 低调的储藏室 你不能把十麻袋物资堆在客厅。也不能堆在卫生间,但是可以放在床底下。 买一张特大的床。若是高点就更好。掀开席梦思,下面是床板。掀开床板,下面是空间。一张大床底下的空间大约是0.7立方米,一张床可以储存至少1000斤物资。 真空包装的比较好,可以长期储存。底下又没有光照,物资可以储存很多年。 你可以瞒着家人慢慢储存。趁你妻子不在家的时候,每次存一百斤。只要床不坏,普通人都不会有兴趣搬起沉重的席梦思和床板,所以全家只有你一个人知道家里有粮食,你在这样的床上睡觉,会特别安心。 要有一半物资是熟食,可以直接吃的。不仅仅是方便面、罐头、压缩饼干之类。米粉、粉丝,都是熟的,可以直接吃。 低调的电源和燃料 另一张床底下,放着几个沉重的汽车电瓶,还有一个充电逆变设备,给电瓶浮充。你会经常打开床板,检查一下电是否正常。 除了电瓶,还有很多18650锂电池,还有AA碱性电池,还有AA镍氢充电电池,以及配套的充电器。这是你的电池仓库。 你给窗户做了个漂亮的大雨棚,雨棚的材料是太阳能电池。楼顶若是可以上去,也装太阳能电池。能装多大就多大。你要跟家人说,装这个每天可以节省很多电费,但是不要告诉他们太阳能电池很贵,要说这是朋友公司淘汰的,你只花了八百块钱就以废品收购的价格买下了十个平方米的电池板。 你家阳台有几个超大的花盆。你或许还可以在屋顶或门口种花,放更大的花盆。你的花盆上面一层是泥土,下面都是煤块。非常时期,你从花盆里拿出煤,就可以做饭烧水。保存煤比保存石油、丁烷气体、天然气、酒精要安全很多。 有一个花盆看起来像个破旧不锈钢桶改成的,其实它是一个煤炉。把里面的土倒出了,就可烧煤做饭。 低调的通讯系统 窗外有几条晒衣服的杆子,玻璃钢做的。普通人只知道那是普通晾衣杆。如果懂行的人看到,就知道那是高增益的天线,火腿们叫它「玻璃钢天线」。你拿掉后面的橡胶套,露出插头,接上馈线,就是对讲机的高效天线。 楼顶也有一个杆子。上面还挂着国旗。那是你的天线杆,里面暗藏着一个短波电台的馈线,还有一个叫「巴伦balun」的天线附件。这个杆子有四条钢丝拉绳。那其实是伪装起来的「短波电台到V偶极天线」。当然也可以用来听收音机。 杆子的中间,还有一个高增益的十单元的UHF/VHF的双段八木天线,邻居会笑话你都什么年代了,还装三十年前的老式电视天线。你一笑了之,就说自己喜欢怀旧的感觉。 楼顶还可以有l两个锅,像是老古董的卫星电视天线。不过,那实际上是卫星电话上网用的,一个对准海事卫星,另一个对准欧星。当然,也可以用来接受卫星电视节目。 打开衣柜,你所有的对讲机、卫星电话、短波电台,收音机,都在这里。 隐藏的冷兵器 打开你的另一个衣柜,里面挂的不是大衣,而是二把复合弓,和几个箭袋,里面装了二百支很重的玻纤箭和碳纤箭。还有一个盒子,里面是几百个没有装上去的狩猎箭头。 复合弓加狩猎箭头,是目前个人可以合法拥有的最强的冷兵器。 你家阳台上的晒衣杆,除了玻璃钢天线,还有二条是隐藏的矛。拔下头上的那一段管子「鞘」,就漏出隐藏的三棱矛。 说走就走的背包 衣柜里有几个大背包,有很好的背负系统。里面的东西,时刻整理好。遇到紧急情况,只需要一分钟,你和家人就可以一人一个背包,走上逃生的路。背包里有常见的驴友装备,还有一些通用货币和证件。甚至可能还有长期有效的机票。还可能有钓鱼线、鱼钩和一张小渔网,因为捕鱼比狩猎容易太多。 这些背包,都放在你的衣柜的下面。平时外人到你家,是看不到的。你可以在衣柜上加一个锁。免得别人好奇心打开衣柜大惊小怪。 药物 非常期间,你不能指望生病可以随便去医院看病,也不能奢望去药店买到各种药。药物是仅次于食物和水的必需品。若无药物,最好的医生也只能对一些小病束手无策。当年白求恩大夫仅仅因为手指割破,感染破伤风,却没有抗生素,就只能眼睁睁等死。 ...

2020-02-28 · 1 min · Duke Yin