深夜emo 

自律这条路好难走啊,屡试屡败。我认真的做了半年的time boxing、visualize、读了各种书 indistractable啦automatic habit啦、最近去看pomodora和4-hour week、认真写帖子分析专注失败的原因和解决方法,然而今天早上完美的状态下午被同事提到一个urgent但不那么重要的事情完全打乱了,晚上累到什么都做不了只能开一支酒。好失败啊 🥃

张雨霏两个小时两块金牌,太厉害了!这美丽的肩线、手臂的肌肉、这美丽的倒三角形,妹妹我可以!(dbq我配不上 :ablobbass: :ablobcattouchfluffytailbongo:

🔥 Day14
-- LeetCode:
16. 3Sum Closest 一遍AC!激动!这个题帮我clear了一个迷思:什么时候用二分、什么时候用two pointers。二分是用在查找单个element的时候,two pointer用来找两个elements的关系;因此在这个问题上,two pointers的时间复杂度是O(N^2), 二分的时间复杂度是O(N^2*log N),而不是想当然的O(N*log N)
235. Lowest Common Ancestor of a Binary Search Tree BST!一个有趣的trick
270. Closest Binary Search Tree Value 另一个BST。答案抄多了自然就会做了,居然直接AC了iteration的解法 :ablobbass:

-- Designing Data-Intensive Applications
Ch3 storage engine 不难读但是感觉今天晚上难以专心,所以读的有点少,summary明天跟着index的其他部分一起做吧

一点杂想:其实从大学毕业的时候本科导师直接冲着我的脸说“你以后不要做任何和编程相关的工作了吧”,到今天我发现自己居然可以一遍过medium难度的leetcode、搞得懂tree、hard 难度的SQL小意思,甚至看懂designing data intensive applications这种大部头,似乎没有经历什么痛苦,自然而然地流到了现在前进的方向。但是如果不是从去年下半年杨笠的脱口秀、后来不知道为什么下回来豆瓣、今年天天泡在豆瓣女权向的小组里,我也不敢想要跳出去、以Engineer的名义称呼自己、看到一道leetcode相信自己的思路相信自己的代码。很想去感谢每一个给过我的勇气sparkles的人,但是又怎么能够穷尽呢。想做点儿什么,做点儿什么好呢 :aru_0130:

我发现我和狗爸的育儿理念出现了重大分歧,特别是在户外啃草根石头和走走停停去什么方向。我觉得狗子很聪明啊,他知道什么能吃什么不能吃。户外的草根树根大石头,他问闻一闻啃一啃,无聊了就吐了。之前吞下去过一次,一天没法吃饭直到把干树叶子都呕吐出来,后来就再也没有误食过了。狗爸就觉得你得一直盯着狗子的嘴,他叼个什么就要立马给揪出来,万一吞下去了呢。

还有走什么方向,我觉得狗子是会想选去哪儿的,既然是遛狗嘛,就是以狗子的意愿为主。所以他想停就停,想走就走,想去东我就不往西,只要您别站在马路中间不动弹。狗爸就时不常的想拽一拽狗子往前走。怪不得狗子不愿意跟狗爸出门呢,狗爸一牵绳狗子就往地上一坐。

希望狗子不要觉得过于撕扯,如果狗子能聪明到要用这个来manipulate我俩得到他想要的,我估计也会心甘情愿的吧。

茶包仔 boosted

老公在听一本关于时间管理的书,作者有四个孩子。书里有一章讲到期待,说无论什么事都要把期待放低。而养孩子,就是一个让你学会 “不要抱有期待” 的终生修行。
孩子就是会看太多电视,吃比你希望得多的零食,偶尔或者经常考出难看的成绩,你花了大价钱买了迪士尼的门票他们却只愿意呆在旅馆,等等。
如果总是按照自己的期待去看待孩子,你肯定会失望。但如果你把他们当成独立的人,放弃自己的期待,通常他们就会变成挺酷的小人类。

希望各位家长心里都有点逼数 :aru_0450:

🔥 Day 13
-- LeetCode:进入到我觉得烦躁起来的Tree啦
108. sortedArrayToBST:
:blobcatgoogly: Binary Search Tree的must-know 1️⃣ 定义:a rooted binary tree whose internal nodes each store a key greater than all the keys in the node's left subtree and less than those in its right subtree 2️⃣ BST的inorder traversal是升序排列 3️⃣ BST里当前节点的predecessor是左边一位然后一直向右到底;当前节点的successor是右边一位然后一直向左到底(来自450. Delete Node in a BST)
:blobcatgoogly: Tree的unique identifier:1️⃣
Preorder和postorder traversal都是BST的unique identifier 2️⃣ BST的inorder = sorted(postorder) = sorted(preorder) 3️⃣
preorder+inorder 或者 postorder+inorder 是任意binary tree的unique identifier (关联题目:1008. Construct Binary Search Tree from Preorder Traversal)
:blobcatgoogly: Python slice的时间复杂度是O(N),所以尽可能少用,传left/right bound进helper function更快

938. Range Sum of BST 就很神奇的recursion和iteration,多看几遍这个题吧 :blobsweats:

-- Designing Data-Intensive Applications
Ch2 cont
1️⃣ Graph data models主要聊了property graph和 triple-store 两种models。Property graph就是写一个table标记所有vertex的id、进出edge、属性和所有edge的id、两个端点vertices、关系、属性。triple-store就是存 (subject, predicate, object)。Query language没太多exciting的东西,扫过一眼。
2️⃣ Graph model的philosophy是每一个节点都有可能和任何其他节点有任何一种关系;相比之于document model是尽可能希望所有data都存在于一个document里,document之间的联系尽可能的少

-- 今天打开了LinkedIn open to recruiters,希望有recruiter reach out!争取两周之内可以开始聊一两个进入一下状态!

围观了会儿奥运会的游泳直播,看姐姐妹妹们游完了出水之后漂亮的肩膀、胳膊和腰线,激情下单了一个pull-up bar。啥时候covid冷静点儿我要去游泳啊啊啊啊

茶包仔 boosted

在停药之后的第二次姨妈啦,虽然还是难受但是比上一次舒服点儿。一个特别有用的流程是这样的:

:0b02: 在略略有点难受之前先吃止疼药,然后来一节正骨盆操bilibili.com/video/BV1Eb4y1978。有一说一,这个小姐姐解释的超级清楚、练完了就不疼了!

:0b05: 然后呢,穿得暖暖和和的,去干一个运动量不大的事儿,比如去散步、平地hiking、开车出门、和朋友聚餐,这种运动量不大、不用操心又能分神的事儿。核心是不能自己一个人呆着,看书看电视看番剧都没用。

:0b15: 日常想起来的时候会练个还阳卧,每周大概两三次。不知道有没有什么用,但是叫“还阳卧”就感觉跟练什么邪教神功一样,叫瑜伽束角式就感觉还挺正常。

:0b07: 每周跑个两三次的步感觉没啥用,因为跑了也疼得要死要活。但是顺着开胯正骨这个思路,练一练腰腹臀胯可能是个不错的方向,这个月试试看哦。

茶包仔 boosted

男的杀了人也还是老实人
十八岁女生被诱奸:不洁身自好没家教的脏女人 🤷‍♀️

早上起来在朋友圈看到大学同学转发了平安北京的通告说都美竹仙人跳,她和吴亦凡是“一个贪财一个贪色的一丘之貉”,去他爹的我直接一通输出 🚬

道阻且长,要持续发声并且保持能够持续发声

🔥
-- Designing Data-Intensive Applications
CH2 Data Model & Query Language part 1
1️⃣ 常用的data models:relational, document, graph (顺便吐槽一下最近被TAO支配的烦躁)
2️⃣ 比较relational和document databases的要点之一:如果application需要的data是document-like的结构,比如一个LinkedIn profile,那首选document model;如果需要many-to-many关系或者document 里有deep nests,relational会让code更简单
3️⃣ relational model 是明显的schema-on-write,适合要写的记录几乎一直有固定的结构的时候;document model是隐形的schema-on-read,适合要写的数据因为外力结构不稳定,或者要写的数据object种类非常多、每一个种类单开一个table太疯的时候
4️⃣ document model一大performance的好处是storage locality -- 大部分时候需要整个document的数据。这也要求每个document尽可能的小,提高读写效率

-- Leetcode:两道Hard SQL。Hard sql写各种window function和复杂join都写疲了,基本可以把重点放去data structure和算法了。

茶包仔 boosted

🔥 Day9
— LeetCode 一道SQL Hard, nothing fancy

— Designing Data-Intensive Applications 真是有趣的书啊,读着读着发现好多client组里我不非常透彻了解的概念根本就是教科书里的内容嘛
Ch1 cont.
1️⃣ Scalability的第一步是了解系统的load,不同application的load parameter定义不同。以推特为例主要是Post tweet, home timeline, fan-out load,它们决定了推的设计是对普通用户用fan-out insertion + 对大V用关系型数据库的JOINS的双重模式。
2⃣️ 第二步是理解当load增加的时候,resource和performance之间的trade-off是什么样的。Batch processing的performance看throughput,online processing看response time或者latency,其中以中位数或者tail latency为重。Tail latency通常问题在于queue的效率。
3⃣️ 解决load问题,一般用scale out的思路,偶尔用scale up:用大量比较不错的机器组成分布式系统,而不是用一台非常昂贵的牛逼系统。
4⃣️ Maintainability 的意思是:让日常运营好过,控制复杂程度(善用abstraction),让系统进化也好过。

🔥 Day8
-- Leetcode
SQL: wide table 变形成long table 用 UNION ALL,long table 变成wide table用CASE WHEN;用各种aggregation function的时候double check GROUP BY,没写的话就整个table一起算了
680. Valid Palindrome II: two pointer注意下while left < right 退出之后left 与right可能一样可能相邻
384. Shuffle an Array:OOP还是需要做题熟练一下;random.randint(a, b) = random.randrange(a, b+1, 1)

-- Designing Data-Intensive Applications
1️⃣ Data systems种类繁多(database, cache, search index, stream and batch processing) 并且有边界日渐模糊的趋势
2️⃣ 设计软件的时候主要要考虑三个要点:Reliability,Scalability,Maintainability
3️⃣ Reliability是指软件能够按照用户预期的功能干活,resilient to certain faults,并且防止权限外的访问。常见的faults包括硬件问题(多视为独立事件),软件问题和人的失误
4️⃣ 软件问题解决方法:仔细思考功能的assumptions,测试,process isolation,monitor & analyze;人的失误解决方法:test,好好设计🤷‍♀️,decouple,recovery,dashboard & monitor

三个月大的狗子居然对着宜家大鲨鱼做出不可描述的举动!长达两分钟!omg!我和狗爸一人一只手机双机位拍摄下狗子第一次不可描述,然后双机位的视频同时播放,过于欢乐!

Show older
驴肉火烧Mastodon

1. 驴肉火烧是一个开放的长毛象(Mastodon)实例,在法律允许的前提下保证言论自由。 2. 驴肉火烧的服务器位于德国,站长定居加拿大,站长保证不会主动泄露大家数据,但来自某些地区的象友请务必注意隐私保护。 3. 申请时会默认关注管理员,注册成功后可取消关注。 4. 请勿使用网易系邮箱或QQ邮箱注册,注册后14天内无任何操作(发嘟、换头像或关注)的账号将被删除。