普通视图

发现新文章,点击刷新页面。
昨天以前RUNNINGJ

可能这辈子都不会在城市买房了

2024年9月9日 00:00

最近一直在想一个问题:这辈子,我还会在城市买房吗?答案似乎越来越清晰——可能不会了。

首先,房价的高企让我望而却步。尤其是在北京这样一线城市,房价已经高得让人难以承受。每次看到那些动辄几百万的房子,我都会忍不住想,这真的是我想要的生活吗?今年的这波房价行情,更让我担忧的是,随着人口老龄化和生育率的下降,城市的人口正在逐渐减少。这种人口结构的变化,必然会导致房价进入长期下降的通道。

其次,随着AI、信息技术和物流技术的飞速发展,城市的相对优势正在逐渐消失。过去,城市之所以吸引人,是因为它集中了大量的资源和机会。然而,随着远程办公、在线教育和电子商务的普及,这些资源和机会已经不再局限于城市。AI技术的进步,使得许多工作可以在任何地方完成。无论是编程、设计还是写作,只要有网络和电脑,人们就可以在家中完成工作。

最后,从投资回报和人生的意义上讲,买房已经不再是一个明智的选择。过去,人们买房是为了有一个稳定的居所,同时也是为了投资增值。然而,随着房价的波动和人口结构的变化,买房已经难有投资价值。今年很多朋友被裁员,背负沉重的房贷,导致陷入长期的财务压力,也限制了生活的自由度。

总之,我逐渐意识到,可能这辈子都不会再在城市买房了。生活观念已在悄然变化,未来的生活方式可能更加自由和幸福。

Origin: 可能这辈子都不会在城市买房了 @ RUNNINGJ

快速计算文本中数据的和

2022年8月23日 00:41

深夜,查看业务数据,忽然想知道一些分散数据的总和,这时已经通过vi操作,将数据按行罗列到文本文件中。当然可以借助excel或者脚本来计算。虽不是特别麻烦,但也不迅速。

最好是能够在shell中就能快速完成。而不是新建一个临时的excel文档,或者一个临时的python脚本。

网上搜罗一番,大概有以下几个方法。

方法一,借助awk

function sum_v1() {
	awk '{s+=$1} END {printf "%.0f\n", s}' "$@"
}

方法二,借助bc

首先需要将数据转换成求和的表达式。通过joinByPlus函数实现字符串的拼接。

function joinByPlus() {
	local IFS='+'
	echo "$*"
}

这时sum如下:

function sum_v2() {
	files="$@"
	joinByPlus $(cat $files) | bc
}

拼接表达是的范式有点繁琐,通过paste可以更简单地实现。

这时sum如下:


function sum_v3() {
    paste -s -d+ "$@" | bc
}

将以上函数放入rc文件中,这样就可以通过sum <file>愉快地计算多行数据的和。

Origin: 快速计算文本中数据的和 @ RUNNINGJ

接口中的时间应该采用什么格式

2022年9月2日 23:21

看到一片篇文章:

Designing a REST API: Unix time vs ISO-8601

讨论在接口中,应该使用unix时间戳还是ISO-8601这样可读形式。文章建议,采用ISO-8601,理由是,可读性更重要。

自己在日常业务中的API中都采用的unix时间戳,暂时不想改变。深入思考,又觉得应该保留unix时间戳,理由是, unix时间戳能减少沟通成本,API的开发和使用往往是不同的人,沟通是一个显著的成本。unix时间戳只有一种形式,而可读的时间串很多形式,日常使用中往往不采用ISO-8601的形式。

但在调试的时候,unix时间戳确实让人头疼,为了缓解这个问题,遂写了一个shell函数punixtime,快速翻译unix时间戳。函数实现如下:

function punixtime() {
    while [ $# -ge 1 ]
    do
        ts=$1; shift
        if [[ $ts -ge 1000000000000 ]]
        then
            ts=${ts:0:10}
        fi
        date -r $ts +"%Y-%m-%d %H:%M:%S"
    done
}

其实,大多数时候,date -r <seconds>也能满足需求。需要注意的是date的参数是秒,大多数unix时间戳是毫秒。

Origin: 接口中的时间应该采用什么格式 @ RUNNINGJ
❌
❌