浅谈Heredoc及其使用

相信只要在Shell、PHP、Perl等语言中接触过『多行字符串』的人,对Heredoc以及其特征性的『EOF』标识符不会陌生。但关于Heredoc背后一些有意思的玩法,却很少有人接触。这篇文章为大家介绍一下Heredoc的基础操作,历史由来,及其进阶使用。

继续阅读

Tags: , , , , ,

心有不甘。

人究竟是复杂一点好,还是简单一点好?
是快乐一点好,还是忧伤一点好?
是努力一点好,还是怠惰一点好?
——但无论是哪一种,爱都必不可少。

继续阅读

在Linux中建立后台任务的若干种姿势

由于Linux中SIGHUP信号的存在,导致了当终端Detach(退出终端或网络断开)时,从属于终端的进程也被销毁,导致当前所执行任务停止的问题。而且在日常的使用中,也会遇到需要在一个任务执行的过程中,使用同一个Shell来执行其他任务的情况。这篇文章即来盘点在Linux中建立后台任务的若干种姿势。

继续阅读

就此死心。

没想到是你,竟让我一夜之间失去对女人全部信心。

继续阅读

React Native调试模式与生产模式之间的切换

不久前我接手了一个React Native项目,需要对应用的逻辑进行修改。然而在我自信满满地修改完js文件,放入模拟器执行时,却发现所有修改均未生效。折腾来折腾去才发现是这个工程已经开启了生产模式,然而应该如何返回到调试模式呢?

继续阅读

为MAMP的Web服务器加入gzip压缩功能

MAMP是Web(尤其是PHP)开发者通常在使用MacOS进行Web开发时的最佳选择,然而当有时候我们需要对所开发网站的页面大小进行评估,却发现MAMP默认并未开启gzip压缩(通常线上服务器会开启gzip,优化页面的体积),设置面板中也未找到gzip相关字样。那么我们应该如何开启MAMP的gzip压缩功能呢?

继续阅读

Tags: , , ,

如何使用JavaScript判断一个值是否在一个数组中(续)—— JavaScript&TypeScript中的迭代器

『如何使用JavaScript判断一个值是否在一个数组中』一文里,我提到了使用Array.prototype.includes()Array.prototype.indexOf()两种方法来实现这一需求,但其实对于JavaScript这样一门极为灵活的语言来说,实现方法远不止以上两种。

继续阅读

解决Nginx反向代理下Jupyter Notebook出现无限重连的问题

最近因为需要进行大量的数值分析和科学计算,我在服务器的一台虚拟机上安装了Jupyter Notebook,并使用一台有公网IP的虚拟机对其进行反向代理,却在使用过程中遇到了Python终端无限重连的故障。

继续阅读

Windows如何判断你是否连接网络?其中大有文章!

相信有使用过Windows Vista及以上版本系统的读者,一定遇到过连接网络后Windows任务栏上的网络图标出现黄色感叹号的情况,这通常代表尽管已经连接上了局域网,却并没有获得互联网的访问权限,那么微软是通过什么方法来判断我们是否已经连接上网络了呢?

继续阅读

突如其来的幸福,奔三之路的第一步。

—— 命运真**扯。
正当我正因苦苦寻幸福而不得时,命运却突然将我带入一段未知的感情中。
2018年4月23日到2019年4月24日,这一年时间竟刚好过去,一天不差。
这是不是巧合,我实在无法判断,可命运既然将我从无尽的苦闷中解救出来,让我不至于在悲伤中逐渐失去未来,失去自己的初心,也许也有它独特的用心良苦。

继续阅读

今天是我在吾理寻找幸福的第587天

这世界 很复杂

混淆我想说的话

我不懂

太复杂的玩法

——王力宏《一首简单的歌》

继续阅读

我们究竟要听什么——略谈流媒体时代音乐行业的创新与缺陷

我们究竟要听什么?
流媒体时代的音乐软件告诉我们:我们应该听我们喜欢的,于是大量的创新被应用到了网易云音乐、QQ音乐、豆瓣FM、Spotify等一众主流流媒体平台。新技术感受,是唱片时代的我们所无法体验到的。
——可我们真的收获了比唱片时代更好的体验吗?

继续阅读

使用wget轻松下载文件列表

很多时候我们会遇到需要批量下载一个文件列表中所有文件的场景,例如下载本地镜像源、下载资源集合之类,这个时候我们可能会求助于第三方工具,例如迅雷等。但其实MacOS&Linux自带的wget已经足够强大,能够帮助我们实现这一需求。

继续阅读

Tags: , ,

体测前的不眠之夜,我所失去的与我能得到的。

自从学校开始响应号召,严抓考核、降低划水毕业率后,体测便成为了竟能让学生无法毕业的一大障碍。然而在这重要的日子前夜,计划早早上床准备睡觉的我却彻夜未眠。心跳加速、全身发热的我在这辗转反侧的七小时里,想了很多很多。

继续阅读

走在奔三的路上,走在追逐幸福的路上。

新买的电动车终于让我见识到了它没电时的表现:油门一捏,只听到变频电机低沉的轰鸣,车子却一动不动。我闻着雨后清新的空气,背照着夕阳,一点点慢慢扶着笨重的电动车,一顿一顿地往宿舍挪动。在这奔三路上的第一天傍晚,我就这样推着沉重的车,背着沉重的书包,盯着车前方自己拖得老长的影子,小声给自己唱了一首生日快乐歌。

继续阅读

解决CSV中长数字在Excel中被转换为科学计数法的BUG

最近接触了一个项目,要求将表格导出为CSV文件,我使用了JS的csv-exportor组件导出CSV,然而导出的数据在Excel中打开却出现了长数字被截断为科学计数法的BUG。

继续阅读

Tags: , ,
iOS

iOS开发之——如何灵活控制状态栏文字颜色(Swift版)

在iOS软件开发中,经常会遇到需要灵活控制状态栏文字颜色的情况,然而网上的资料要么是通过修改info.plist实现全局颜色配置,要么是通过直接在ViewController中直接override默认颜色配置(UIStatusBarStyle.preferredStatusBarStyle,iOS9.0之后官方推荐的配置方式),依旧无法实现灵活配置(即事件可触发的)状态栏颜色修改。这篇文章便来向大家介绍一下如何简单实现状态栏文字颜色的灵活修改。

继续阅读

使用轻量插件,轻松美化prompt()与alert()

由于prompt()在不同浏览器下的实现有着巨大差异,甚至有个别浏览器不提供对prompt()的支持,因此定制这个对话框在对用户体验有较高要求的场景下显得非常重要。然而通常用于实现这个功能的库要么过于庞大、要么配置复杂、要么侵入性强,需要对现有的网页进行较多改动,但有一个小众的库却脱颖而出,体积小(gzip后仅4.5kb),效果好。这就是这篇文章要介绍的Prompt-Zepto
继续阅读

Tags:

动态为Docker容器添加新属性(续)

上一篇博客中,我提到了如何利用docker update命令为已经运行的Docker容器动态添加新属性,然而这个命令有着很大的局限性,而例如端口映射、IP绑定、卷组挂载等更为常用的操作却没有在该命令中得到支持,因此我们需要使用另外的方法来实现这一目标。
继续阅读

Tags: , ,

动态为Docker容器添加新属性

由于docker run命令又臭又长,经常我们会遇到在键入完成后才发现出现了错误的情况,而在这种情况下,大部分时候我们想到的是执行docker stop docker rmdocker run,但其实不用那么复杂,docker容器动态添加新属性其实很简单。
继续阅读

Tags: , ,