0%

每日一思

2023-08-27: 积木与故事

家里小孩有一个积木桌,搭配有很多积木小方块。小孩年纪还十分小,这些小方块也都是随意的搭配,没有成套。

这正好给人充分发挥创造力的空间。

那我们就来设计一个理想中的院子吧。将高度相同的小方块连续排列,围成一个方形,就是院子的围墙。围墙上面留一个小口子,口子两边凸出一块,就变成门。院子里面再围一圈高一点的小方块,就是院子里面的房间。房间紧挨着再来一圈相同高度的方块,就构成了另一个房间。房间里面平铺几块低一些的小方块,这是床。类似的还可以做出厨房和卫生间以及院子里的茶座。

在院子搭建完毕之后,拿着成型的院子给家里人讲一个故事:这是妈妈,妈妈早上起床了,到卫生间洗漱,顺便上了一个厕所,然后到厨房找了早餐吃了,然后泡茶并在茶座上和家里人愉快地聊天。。。

《人类简史》中说,人类和黑猩猩之间真正不同的地方就在于那些虚构的故事,它像胶水一样把千千万万的个人、家庭和群体结合在一起。这种胶水,让我们成了万物的主宰。

比如小小的积木就可以让我们虚构一个故事,如果这个虚构的故事能被大家所接受,那它就可以把大家紧密地结合在一起。

2023-08-26: 从拥堵中寻找顺畅

上班路上有一个左转路口,之前一直非常拥堵,一般需要超过10分钟才能过去。最近这个路口却突然变得通畅起来,常常只用一个红绿灯就过去了。

观察发现是由于红绿灯设置更合理了。

这个路口是进出城市环线的路口,工作日的时候进环线和出环线的车都非常多。之前出环路后的直线路段第一个红绿灯的直行绿灯时间设置比较长,左转时间则非常短。为什么左转时间短呢?是为了支持更多的对向直行上环路的车。这就导致一个问题,下环路后直行左转和上环路的车都堵得厉害。

在车流并没有变少的情况下,现在的红绿灯设置为什么可以改善执行左转的拥堵呢?

很简单,只需要增加左转时间即可。因为原来对向直行本来就堵,在一定范围内,无论增加或减少时间都不会有任何改善。既然如此,最优解就是找到对向直行的最短绿灯的时间即可。这时,上环路的拥堵依然存在,下环路的拥堵却显著减少了。

很多事情虽然看起来已经最优,但在全局视角下,往往还有提升的空间。如果你找到了这样的方法,那就是从拥堵中寻找到了顺畅。

2023-08-25: 滴滴打车意外打到了一辆model 3

滴滴打车意外打到了一辆model 3,我靠近车门,准备拉开门上车,发现门把手嵌入到车门里面,不知道如何打开。我敲一敲车窗,司机师傅告诉我说要按一下门把手一边,另一边就会翘起,然后就可以开门了。上车之后,座位怎么坐都不太舒服,仔细感受之后发现坐垫太短且地台太高,腿一大截没有被支撑到。而且后面座位也显得有点紧张,活动空间有限。车辆行驶过程中,周边环境及车辆会跟随显示,非常清晰和准确,司机可以清楚的看到周围的情况。

更多能打到的车是比亚迪汉,靠近车门,门把手自动弹出来,我拉开门上车,一气呵成。进入车内,座位坐起来相当舒服,不管是地台高度还是坐垫长度都非常适当,活动空间也非常宽敞。座位皮质显得很高档,不管是触感还是观感都有一种高级和精致的感觉。当然这辆车虽然有大屏幕,但看起来只像是摆设,司机师傅只是用来显示空调信息。

2023-08-24: spark同时读写某一张表

spark无疑是一个优秀的计算引擎,但却在支持同时读写某一张表时略显不足。

一个简单的示例为:insert overwrite a select * from a

事实上,如果我们碰到了这样的场景,spark直接报错:cannot overwrite a path that is also being read from.

如何解决?一个很简单的方案是,先写入一个临时目录,然后再修改一下目录名。

用sql表达,即:

  1. insert overwrite a_tmp select * from a

  2. drop table a

  3. alter table a_tmp rename to a

2023-08-23: 分解复杂数据问题

数据开发常常碰到数千行的sql代码,如何看待和优化这些代码呢?

可以将问题按照业务和技术复杂性进行分解。

  1. 识别复杂代码中涉及的大表连接场景,这通常很慢而且难以优化。

  2. 针对大表连接场景,识别是否可以将更多数据筛选条件下推到连接之前;识别是否可以在连接条件中利用分区键;识别是否可以优化为小表连接大表等。这些场景下有很多成熟的优化方案。

  3. 将大表连接代码隔离出来,单独处理。即拆分为简单代码大数据量代码段及复杂代码小数据量代码段两部分。第一部分主要进行技术优化,第二部分主要进行业务逻辑优化。此即为关注点分离的模式。

2023-08-22: 困局

地上一滩水,小蚂蚁在水边爬,恶作剧的人用手划过这滩水,圈出一个水圈,将小蚂蚁困在圈子里面。

小蚂蚁在水圈里面来回爬,想要找到一个出路,它一直尝试一直尝试,把能尝试的路径都试过了,始终都没有找到出路。

随着这滩水越积越多,水圈慢慢变小,慢慢变小。。。

2023-08-21: 推荐反被推荐误

下火车了,赶紧用滴滴订一个车,滴滴推荐了几个上车点,随意选一个,然后开始往上车点赶。到了上车点,是一个停车场,人真多,嘈杂的打电话声音夹杂着汽车的哄哄声,在夏天的潮湿而又闷热的空气中乱作一团。汽车排着长队一个车位一个车位往前挪,刺耳的喇叭声不绝于耳。等了20分钟终于上车。

这是很多人在火车站打滴滴车的日常。

这次到站了,由于我实在无法忍受在热浪中等待20分钟之久,就选择了一个自己定位的上车点。没想到一切竟出奇的顺利,快速的叫到了车,师傅快速到了上车点,我也快速的上了车。由于上车点在马路旁,人流量不大,车也没有排长队。体验一下子提升n个档次。

为什么滴滴推荐的上车点体验如此差,而自己选择的却还不错?

本来是一个不错的地点,但正是由于将少量资源推荐给了大多数人,这个不错的地点就变成了很差的地点。推荐反被推荐误!

欢迎关注我的其它发布渠道