抛砖引玉——关于剑道运动的防护 Throwing Bricks to Attract Jade — On the Protection of Kendo Practice

Edit on Jan 9, 2024 to add English translation, assisted by chatGPT.

(封面图by Otto Norin from Unsplash)
(Cover image by Otto Norin from Unsplash)

练习剑道半年,发现剑道仍然是一项运动,需要遵循一些人体科学。但是在练习的时候我们道场很少强调这些人体科学的部分,因此想开篇文章来写一些我走过的歪路,谈谈剑道运动的防护注意事项。毕竟这是一项可以打到长命百岁的运动,只要掌握了自己身体的正确动作,老年人也可以吊打年轻人。

希望大家也能提一些问题和建议来完善关于这项运动的注意事项。修身修心固然重要,但避免运动损伤也很重要。

以下内容依据的身体部位来排序。

Disclaimer: 我不是医学专家,本文仅供参考。如果你的身体出现问题,请第一时间咨询医师,寻求专业帮助。

After practicing Kendo for six months, I’ve come to realize that Kendo is not just a sport; it involves adhering to some principles of human anatomy. However, our dojo rarely emphasizes these aspects of human anatomy during practice. Therefore, I’d like to start this article by sharing some detours I’ve taken and discussing precautions for the protection of Kendo practice. After all, Kendo is a sport that can lead to a long and healthy life, as long as one masters the correct movements of the body. Even seniors can outperform the younger generation if they grasp the proper body dynamics.

I hope everyone can contribute questions and suggestions to enhance the guidelines for this sport. While self-cultivation and mental discipline are crucial, preventing sports injuries is equally important.

The following content is organized based on different parts of the body.

Disclaimer: I am not a medical expert; this article is for reference only. If you experience any physical issues, please consult a physician for professional help.

热身 Warm-up

我们道场的热身运动主要是慢跑。慢跑前需要自行拉伸跑步相关的部位,主要是跟腱。慢跑结束身体热起来以后再进行颈部、腿部等全身拉伸。

运动后不会拉伸,但会正坐行礼,可能就算做是拉伸腿部的一部分了。我认为视当天训练情况,可以选择再拉伸肩颈等部位。

In our dojo, the primary warm-up exercise is jogging. Before jogging, it’s essential to stretch the relevant muscles, mainly the Achilles tendon. After the body warms up from jogging, perform overall stretching for the neck, legs, and other body parts.

While we don’t stretch immediately after the workout, we do perform a formal seated rei, which can be considered a part of leg stretching. Depending on the training, I believe it’s advisable to consider additional stretching for the shoulders and neck.

肩膀 Shoulders

打击的时候理想状态肩膀应该是放松的。我刚开始练的时候肩膀是紧张的,甚至有点耸肩。错误的动作会造成损伤,因此隔一段时间就需要重新衡量自己的肩膀情况。

相关讨论:https://www.kendo-guide.com/shoulder-problem-in-kendo.html

还有一点是我认为打击的时候左手肘是有些弯曲的。因为人的左右手一样长,左手伸直的话右手就够不着那么远的剑柄端头,否则肩膀就会很紧张。

但是加上手之内之后左手弯曲程度也是有限的,是关于自己身体的平衡问题。早期就要确认好自己素振结束的姿势,避免错误动作做太多而受伤。

In an ideal state during strikes, the shoulders should be relaxed. When I started practicing, my shoulders were tense, and I even tended to shrug. Incorrect movements can lead to injuries, so it’s crucial to periodically reassess the condition of your shoulders.

Further discussion: https://www.kendo-guide.com/shoulder-problem-in-kendo.html

I also think that during strikes, the left elbow should be slightly bent. Since the left and right hands are equally long, if the left hand is fully extended, the right hand won’t reach the far end of the sword handle to cause tension in the shoulders.

However, with tenouchi, the degree of bending in the left elbow is limited; it’s a matter of balancing one’s own body. It’s essential to establish the correct posture early on to avoid excessive incorrect movements and potential injuries.

手腕 Wrists

对象这几次手腕会有些问题,我的怀疑是在练习时握剑太紧,在打击时手之内过于用力导致无法靠手臂将剑的重心停在和手腕成直线的位置,而靠手腕的关节停住剑而劳损手腕。

另外,剑道动作中频繁地打击和挥动剑也会增加手腕的负担,长时间的练习也可能对手腕造成损伤。因此,在剑道运动中,需要注意握剑的力度和手腕的姿势,尽量避免过度用力和不正确的动作,以减少手腕的损伤风险。

My partner encountered some issues with my wrists during recent practices, and I suspect it may be due to gripping the sword too tightly. During strikes, excessive tenouchi can prevent the sword’s center of gravity from aligning in a straight line with the wrists. Instead, the joints in the wrists bear the weight of the sword, leading to potential strain and injury.

Moreover, frequent striking and swinging of the sword in Kendo movements can also add strain to the wrists. Prolonged practice may contribute to wrist injuries. Therefore, in Kendo, it’s crucial to pay attention to the grip strength and wrist positioning, aiming to avoid excessive force and incorrect movements to minimize the risk of wrist injuries.

手肘 Elbows

许多老师在素振时都要求大家双臂伸直。但由于现代人毛病很多,我们需要区分伸直(straight)和超伸(hyperextended)的区别。手肘过度伸直(hyperextended)会给肘关节带来不必要的压力,容易导致肘部疼痛、肘部炎症、肘关节半月板损伤等问题。因此需要注意在进行剑道动作时,不要过度伸直手臂,特别是手肘内翻和手肘外翻的情况下要特别注意。

Many instructors emphasize keeping both arms straight during suburi. However, considering the various issues each individual might have, it’s important to distinguish between straight and hyperextended. Hyperextending the elbows puts unnecessary pressure on the elbow joints, making them prone to pain, inflammation, and even damage to the elbow joint’s meniscus. Therefore, it’s essential to be mindful not to overextend the arms during Kendo movements, especially paying attention to situations involving inward or outward rotation of the elbows.

网球肘的问题很多文章也提到过了,练剑道不当也是会有网球肘的,可以自己衡量一下身体情况,不要求快,注意自己动作的准确性。很多剑道高手都是年纪很大的老人,因此挥剑并不需要太多力气,应该更多利用剑的重心(剑道比赛运动员的话另说了)。如果课后手臂某个部分很累那最好问问前辈们自己的姿势是不是有问题。

Tennis Elbow has been discussed in many articles, and improper Kendo practice can indeed lead to this issue. It’s essential to assess your own physical condition, prioritize accuracy over speed, and be mindful of your movements. Many great Kendo practitioners are elderly individuals, indicating that wielding the sword doesn’t require excessive strength. Instead, it’s more about utilizing the sword’s center of gravity (although competitive Kendo athletes may have different considerations). If a specific part of your arm feels tired after class, it’s advisable to consult with senior practitioners or your physical therapist to determine if there might be issues with your posture. Remember, it’s not about speed but precision, and taking care of your body is crucial in the long run.

核心 Core

核心不多说了,都是要收紧的。像我之前不明白核心的用力方式,甚至做一些简单的自重运动都直接恶化了我的腰椎间盘,导致老化突出,影响神经。和我一样有腰背问题的朋友们,一定要研究好骨盆附近的一圈肌肉如何锻炼加强,否则简单的运动都会恶化自己的病情。

Let’s keep it simple when it comes to the core — it’s all about tightening. I, too, didn’t understand the proper way to engage my core. In fact, some basic bodyweight exercises I attempted earlier even worsened my lumbar disc, leading to disc protrusion and nerve issues. For people who are facing similar lower back problems, it’s crucial to thoroughly study how to exercise and strengthen the muscles around the pelvic area. Otherwise, even simple exercises can exacerbate your condition. Take the time to understand and reinforce the muscles around your pelvis, especially if you’re dealing with lower back issues like mine.

图源 Kingston Kendo Club,剑道中明显会用到的肌肉群
图源 Kingston Kendo Club,受过腰背伤的人必练的骨盆(pelvic)肌肉群,没受过伤的人常常会忽略。
图源 Kingston Kendo Club,运动时收紧核心后骨盆的变化

关于如何在运动时收紧核心并保证呼吸(我觉得不应该憋气),可以参照腹式呼吸和逆腹式呼吸的相关讨论。具体剑道是哪种,我想因人而异,并没有统一法则。

Regarding how to engage the core during movement while ensuring proper breathing (I believe holding your breath isn’t advisable), you can refer to discussions on diaphragmatic breathing and reverse abdominal breathing. The specific approach in Kendo may vary from person to person, and there isn’t a one-size-fits-all rule.

图源 Kingston Kendo Club,什么是丹田

还有一点,上身我觉得不可避免会有些侧身,毕竟拿剑的双手不是对称的位置,但自然体和站姿都要保证骨盆向前。


One more thing, I feel that some degree of tilting in the upper body is unavoidable, given that the hands holding the sword are not in a symmetrical position. However, it’s crucial to maintain a forward pelvic tilt in kamae.

图源 Kingston Kendo Club,骨盆姿势

左膝 Left Knee

左膝这个问题也是我最近发现的。剑道基本步法Okuri Ashi要求左腿助推,而且要求大量练习……很多老师要求左腿伸直。和手肘问题一样,伸直不是锁死。很多人腿部都不是直的,会有各种各样的问题:罗圈腿、外翻、内翻等等。所以在助推过程中,要注意不要过伸自己的左腿。

过度伸直腿部容易导致膝盖和脊柱受伤。在剑道中,过度伸直腿部可能会导致左膝受伤,并增加腰部的压力。因此,在进行剑道动作时,要注意不要过度伸直腿部,特别是左膝。如果感到不适,最好找前辈确认动作的细节,找到适合你身体的方法。

Another issue I’ve recently identified is the left knee. The basic footwork in Kendo, Okuri Ashi, requires the left leg to assist in propelling forward and demands a considerable amount of practice. Many instructors emphasize extending the left leg, but similar to the issue with the elbows, extension doesn’t mean locking it in place. Many people’s legs aren’t naturally straight, leading to various problems such as bowed legs, outward or inward rotations, and more. Therefore, during the propulsion process, it’s essential not to overextend your left leg.

Overextending the leg can easily result in injuries to the knee and spine. In Kendo, excessive leg extension may lead to injuries in the left knee and increase pressure on the lower back. Therefore, when performing Kendo movements, be mindful not to overextend the legs, especially the left knee. If you feel discomfort, it’s best to consult with other people to clarify the details of the movements and find an approach that suits your body.

图源embodymovementpilates.com,不同的错误体态对核心的压力,其中第三个就是膝盖过伸导致的
图源embodymovementpilates.com,不同的错误体态对核心的压力,其中第三个就是膝盖过伸导致的

找到一张很合适的高尔夫的图如下。高尔夫和剑道运动有很多相似之处。例如,两项运动都需要特定的动作和姿势,需要良好的身体控制和灵活性。此外,两项运动都需要注意姿势的细节,以避免运动损伤。

I found a golf posture diagram as follows. Golf and Kendo share many similarities. For instance, both sports require specific movements and postures, demanding excellent body control and flexibility. Additionally, attention to detail in posture is crucial in both activities to avoid sports injuries.

左脚 Left Foot

一般道场练习都要求双脚向前平行。原因是如果左脚朝外,同时向前推进,会给膝盖产生一个扭转的压力,膝盖容易受伤。另一个问题就是会导致骨盆扭转,详见上方核心章节。

但每个人身体是不一样的,不是所有人的身体都是双腿平行以后膝盖向前。详见Imafuji sensei的讲解。

In most dojo practices, it’s generally required to have both feet facing forward in parallel. This is because if the left foot points outward while simultaneously moving forward, it puts a twisting pressure on the knee, making it prone to injuries. Another issue is that it can cause pelvic rotation, as detailed in the above core section.

However, every person’s body is different, and not everyone’s knees naturally face forward with parallel legs. Refer to Imafuji sensei’s explanation below.

他本人的左脚就是有些朝外的,我观察下来不少前辈也是略微有些朝外。所以练习时要听从自己的身体,并找前辈们确认细节。

另外还有点对初学者很难做到的就是,左脚不要抬太高,否则容易伤到小腿、导致骨盆扭转,肌肉不强的话还会影响出击的爆发力。我自己没有做得很好,但有两个方式可以提醒自己:

方法一,双脚一前一后都全贴在地上,身体重心不可避免会往后,然后收紧核心,让自己的重心前移到双腿中心,这时左脚就会自然而然有些抬起来,而且不会很高;

方法二是另一个道场的老师教导的,可以双脚一前一后站好,跳起来,落地时的姿势就是你身体舒适的站姿,包括了左脚抬多高、以及双脚的间距。

最后还有脚底板的问题:脚底板磨破皮很常见了,但是磨破皮以后仍然需要包扎后再进行训练,否则会流血受伤,更不容易长好(本人血的教训)。关于如何用运动胶布科学包扎可以看这里:

His left foot naturally points slightly outward, and from my observations, many seniors also have a slight outward inclination. Therefore, during practice, it’s crucial to listen to your own body and confirm details with senior practitioners.

Another challenging aspect for beginners is not raising the left foot too high. Otherwise, it may lead to injuries in the lower leg, cause pelvic rotation, and affect the explosive power of the strike if the muscles are not strong. I haven’t mastered this myself, but there are two ways to remind yourself:

Method one: Keep both feet firmly on the ground, one in front of the other. The body’s center of gravity will inevitably shift backward. Tighten your core, shift your weight forward to the center of your legs, and your left foot will naturally lift a bit without going too high.

Method two is taught by another instructor from a different dojo. Stand with one foot in front of the other, jump, and the landing posture is your comfortable stance. This includes how high the left foot is raised and the distance between the feet.

Lastly, there’s the issue of the foot: it’s common to get abrasions on the sole, but even after abrasions, it’s necessary to bandage before continuing training to avoid bleeding injuries and promote proper healing (a lesson learned from personal experience). For scientific taping with sports tape, you can refer to this guide:

不用包扎太厚,不然会影响左脚发力。

Don’t wrap the bandage too thick; otherwise, it may hinder the movements of your left foot.

右腿和右膝 Right Leg and Right Knee

这两个问题是一起的,场景都是在振足(fumikomi)时容易受伤。首先场地的地板很重要,在硬的地板上振足,由于地板不能吸收足够的弹性,导致振足作用在地板上的反作用力很大,而反作用力会全部由我们的关节吸收,因此硬地时振足要多加注意。

我的观察是普通人在振足时右膝不要超过脚尖,和做深蹲的原理是一样的,小腿在落地时尽量垂直于地面,这样才能保护好右膝。肌肉弱一些的人比如我,振足时距离不远,对右大腿和核心的支撑要求没有那么高。左小腿和右大腿肌肉强的人可以做到振足距离很远。

但是慢慢来吧,对我这种肌肉弱的人来说,只能循序渐进,先把姿势稳定,再慢慢增加距离。这点还在探索中,也欢迎大家讨论如何才能做到振足不会受伤。

These two issues are related and often occur during the fumikomi (stamping) motion. Firstly, the floor surface is crucial. When fumikomi is performed on a hard floor, the lack of sufficient elasticity in the floor prevents proper absorption, leading to a significant reactive force on the floor. This force is then absorbed entirely by our joints. Hence, extra attention is required when performing fumikomi on a hard surface.

From my observations, for the average person, the right knee should not extend beyond the toes during fumikomi. This follows the same principle as squatting – the lower leg should be as close to vertical as possible when landing to protect the right knee. For those with weaker muscles, like myself, keeping the fumikomi distance shorter reduces the demands on the support from the right thigh and core. Individuals with stronger left calf and right thigh muscles can achieve a longer fumikomi distance.

However, take it slowly. For people with weaker muscles like me, progress should be gradual. Start by stabilizing the posture and then slowly increase the distance. This aspect is still under exploration, and I welcome discussions on how to perform fumikomi without risking injury.

最后

最后想推荐一下加拿大道场Kingston Kendo Club的这本书,A Beginner’s Guide to Kendo.

https://www.kingstonkendo.org/kendo_info.html#org5af4ea8

其中用到了很多图解和科学来解释剑道各个动作,我十分喜欢,帮助我梳理各种在剑道练习中被教导:要做!但不知道为什么做、怎么做的困惑。

不同道场的教学和思考方式很不一样,有的教学遵循礼法和传统,很少从运动的角度来解释剑道原理,练习时也是不停地练习来悟道;而有的道场通常习惯牺牲一些练习时间来解释原理,用逻辑解释背后原因,通过理解进行练习。

一个常见问题就是,为什么武士要采取左手左脚在后,右手右脚在前的战斗姿势,大家给的原因多种多样,我很喜欢这种带有逻辑的解释:日本左为贵→幕府时代武士走左边+佩刀在左→右手抽出比较顺手+敌人一般从右方袭来→右手抽出左手顺势就在剑柄末端了。我也就顺势接受了这样的站姿。

不同的教学方式没有什么对错,不过是通过不同的方法来达到相似的结果。但在过程中我持续学习,或许会有新的感悟。希望大家在练习过程中保护好自己,开开心心,不要受伤。

Lastly, I’d like to recommend a book from the Kingston Kendo Club in Canada, titled “A Beginner’s Guide to Kendo.”

Link to the book

This book uses a lot of illustrations and scientific explanations to clarify various Kendo movements. I found it very helpful in organizing the teachings I received during Kendo practice – the ones that often left me wondering why I should do something and how to do it.

Teaching methods and perspectives can vary significantly among different dojos. Some adhere strictly to etiquette and tradition, rarely explaining Kendo principles from a sports perspective, emphasizing continuous practice for enlightenment. On the other hand, some dojos often sacrifice practice time to explain principles, using logic to justify the reasons behind the actions and encouraging understanding before practice.

A common question is why samurai adopted the combat stance with the left hand and left foot behind, right hand and right foot in front. Various reasons are given, but I appreciate explanations with logic, like the cultural significance of left in Japan, the historical context of samurai walking on the left side during the Shogunate era, and the practicality of drawing the sword with the right hand, as enemies usually attacked from the right.

Different teaching methods are not right or wrong; they are simply different approaches to achieving similar results. However, by continuous thinking and learning, perhaps we can gain new insights. I hope everyone protects themselves during practice, stays joyful, and avoids injuries.

Kendo Practice Notes Season 001 | 剑道笔记 第一季

最近机缘巧合,误打误撞地学起了剑道。剑道真不是一个简单的运动,不知道能不能做到像其他人一样以“Kendo is life”(剑道生涯)的严肃心情实践下去,但是目前打算认真继续。

开始之后也陆陆续续地在长毛象上写了剑道笔记,但是打算这里的博客也放一篇作为修订版本,持续更新,方便自己日后翻阅思考。目前希望早日脱离新手村!上甲之后若有更多收获,或许能另外写几篇专题。

由于废话太多,写得太长,因此打算分季度来写。第一季完结撒花!

剑道020

恰好第20次是2023年前的最后一次练习。练习前心情不是很好,因为咪受伤不会上场练习,我担心这次又只有我一个beginner,没什么动力上场。到了以后发现还有另一个beginner也来了,心情终于好了点。

这次又是六段sensei带我们。他让我们尝试了一些新奇的footwork practice:根据他的拍手指令进行前、后(或左、右)交替和最后击打men的footwork. 很有意思的运动,也因此多练习了一些左、右的footwork,磨到了脚掌的侧面。还能看出有些前辈的脚步天生就灵活一些、快一些。

之后又是和bogu组一起练习。上来打了两个kirikaeshi我已经有些手要抬不起来了,惊讶于半个月没练怎么体力这么差劲。再打了几个big men之后我被纠正了好多次右手上劲了,还是有些沮丧的,毕竟练了三个月了仍然没有脱离右利手。想到我们在课前的suburi也少多了,可能也影响了我没有及时转变到双手的意识。另外前辈也提到我fumikomi时举手太早,然而尝试了好几次先动body再举手,我根本来不及气剑体一致。痛苦,心中大大的问号。

之后我明显footwork变慢了被其他前辈背后戳了几次,左脚痛到不行于是先行退场。检查一番发现上次的伤更严重了,左脚出血了,好消息是左脚得到了锻炼……不过遗憾地以受伤告终了这次的练习,有点不甘心。

在场下和咪一起旁观,看到六段sensei教了很多小的waza,比如kamae时把对方剑打开然后一击小面,或者直接从下绕起来抢中线然后一击面,还有退击面等等,惊叹kamae对峙时一定暗潮汹涌、变化很多。六段sensei打得和教科书一样。另外一边前辈在教刚来的beginners一些基础的men、kote、dou,我也很想上去练习,毕竟kote和dou都好让我困惑。

这两次课我都出大汗出到不行,这节课后来我就在旁边站着围观,竟然还一直在冒热气,不觉得冷。

课后吃货咪仍然很执着想去兄弟道场看打年糕,于是我们问前辈能不能只去看打年糕,前辈嘿嘿一笑说我不会告诉别人的哟,不过你们没有bogu可以在旁边先看嘛。啊观摩的话绝对会手痒,还是早日练到能上甲明年再参加新年活动吧。

回想起今年练习剑道仍然觉得不可思议。七八年前我刚来西雅图,深觉自己身心状态不佳,想要练习martial arts。高中尝试过跆拳道,拉筋实在太痛苦了,考级也贵,不适合我。有一天一个人转了二三次公交跑去了Seattle Kendo Kai观摩。道场的前辈还脱下面,满头大汗地来观众席招待我,鼓励我来尝试一下。我说我很瘦弱,他说有肌肉的人反而太笨重练得没那么好。最终我因为交通不便加没有同伴一起所以没有继续。后来在纽约和西雅图之间辗转,一直心心念念想练Kyudo, 但冥冥之中我家里的wifi名一直是Kendo+我的姓……

今年如果咪没有和我一起来练、如果第一次我们没有被赶鸭子上场、如果道场没有象友一起、如果道场离家没那么近、如果道场没什么女生……可能都不会坚持下来吧。总之缘分令人琢磨不定。

新的一年希望自己有所精进,心态也能更从容和不卑不亢。

请多多指教!

剑道019

补上前两天没记录的第19次。刚刚休假回来,加上中间天气原因中断了一周,算上来是半个月没练了,可谓十分生疏。

这次是新晋六段sensei带我们做热身,他的热身一向不多,就是没有kiai地footwork,然后footwork配合一记fumikomi打击。后者我每次做得都很垃圾,身体永远不sync,可见还需要加强。热身完后,Advanced beginner就我和对象两个人,于是我们又被安排到和bogu组一起练习一些基础打击。中间对象因为赶游记身体不适很快就退下了,于是就我一个人继续在场上。我练了很多big men, big kote, kote-men, 最后是两轮kakari-geiko. 一旦轮到五段机器人和韩国前辈他们就会要求我一直打到这轮结束,也就是其他人二倍的量。我是第一次打kakari-geiko,两轮打下来打到后来第一次有体力跟不上的感觉。

六段sensei:他提出我的kamae太紧张,他模仿了一下,感觉是紧紧夹着双手,他说这样不好发挥。然后他演示了一下他的动作,自然挺拔、双肩放松,然后再strike,会比较轻松。我试了两下感觉灵活很多,今后可以多回想这个放松的姿态。

五段机器人:全程都没说什么,只是最后kakari-geiko的时候跟我叫了一次too close, 让我想多了解一下maai(间距)的详细部分。

Beginner的教程大多分为三种

Issoku itto no maai(一足一刀):进一步fumikomi就可以打到对手,退一步就可以避开对手攻击;

Chika maai(近距离):比一足一刀近就是近距离了,双方都可以很轻易地打到彼此;

Toi maai(远距离):比一足一刀远,双方都无法打到彼此。此时shinai not touching. (但touching可能是临界点了?)

还有四种其他距离,有一篇回答很详细,链接在这里。我现在还用不到所以就没看,但我目前对一足一刀很困惑,下次有机会想问问。

韩国前辈:道场里文雅韩国小妹妹的爸爸。友邻说他是3kyu,他对我挺耐心的,可能五段、六段都太遥远了,已经忘记beginner的一些痛点。kakari-geiko时他还会小声地提醒我让我出什么招。他带我练了好久,不知道有没有十分钟,最后还开玩笑说希望我也可以让他打几下。

印象很深的是我dou还是打得很差,摸不着头脑。有几次感觉到了那种打出去马上弹回来的感觉,像这个视频说得打篮球:,而不是很僵硬打在men上。但剑弹回来的时候我抱着剑很懵。再者是,他连出了很多个men-men-men, men-kote-men, kote-men-men这样的3个fumikomi,把我累得够呛,但是马上就暴露出问题了:他指出我big men strike的姿势不一致:第一个ok,第二个就偷懒从一半开始打,变形了。第二个问题是fumikomi:他也强调了先forward、forward、forward,再抬起来击打。我试了一下,单单脚步是可以的,但是加上手部就是各种出错:不是手抬不起来,就是左脚跟不上或者左脚弯曲严重(说明左脚没发力了)。

对象身体不舒服,但还在场边给我录像鸡我上进。录像里我的左脚方向有时候不对,似乎和每次转向reset有关系,这部分转向我一直不怎么利索。她还提到我似乎老是飘起来,回想带着剑练fumikomi strike的时候确实会很多注意力放在上半身,出剑时想去够着对方的men,没有注意下半身带动,于是脚步就偷懒了。

今天我又在家里多练习了几次,还是很别扭。但希望下次不管有没有打中,至少可以做到fumikomi好一些。

录像里最后我累到不行,剑都歪了,都是右手在出力,感觉韩国前辈一定被打得很痛……心里默念对不起。想起之前四段嘻嘻哈哈前辈说要累了以后才能打出正确的剑,这怎么打?

这几次和bogu练习我还有一个心态困惑:每次其实应该身体、精神都reset好以后再打出下一击,但因为是大家一起练习,我害怕会拖慢进度,有时候并没有调整好就打下一个了,于是每一击都带着同样的错误。是不是下次并不需要赶上别人进度,每次都调整好再出动,打不完那么多次就算了?

练习中间sensei提到好几次seme,说一定要seme,要进到距离里,让双方uncomfortable. 我想他应该是说那篇链接的后几种的距离,那我对每次练习的距离更困惑了,到底要不要进一步,还是直接fumikomi,这个距离应该怎么把握呢?最后六段sensei正式领了六段证书,提到他今年考了三次六段才过,直到理解了seme,理解了如果manage对手、在每一步想好对策才最终通过了。啊,真是任重道远啊。

下次目标:

  1. 自己系hakama(呜呜);
  2. Fumikomi-strike:脚步先出去再抬起来,手先早点抬好了否则无法一致……
  3. 调整好再出击。

希望新年的课程可以教我们怎么调整shinai,网上教程很多但手残如我我都不敢去动,打了几个月感觉剑很松了。

剑道018

今天着重练习了我们一些薄弱的地方,比如fumikomi,二步fumikomi等等。先脚,再配合空打,再打真人面。

fumikomi men自己空练的话我就很不协调,但打人感觉比较好。不过每当对面站着前辈的时候,大脑其实一片空白,打完了我也无法回想起到底打得好不好。好希望beginner这里也有录像可以回放。

技术上应该还是上次那些问题,左脚高度今天好多了,但是右手还是很喜欢扭,不管是打面还是kamae,每次都需要好好reset.

打面加一点,挥出去的时候是下面两个手指握紧。如果全握紧或许就会导致我左右手转。

举剑还是会吊剑或者太平,叹气啊。

打算弄一个list写自己需要改善的地方,阶段性完成了就划掉。

今天对kamae的第一个人是道场头牌的爹,take center超级灵活,不管是我重了轻了都可以上下一转一撩就center了,我叹为观止。

然后对上的是兄弟道场来练习的前辈,于是我开始了菜鸡的瞎搞,basically就是学前一个对手开始抢center,总觉得有点惹到了他?前辈进攻的时候一步都没停,最后还打了我一个面停在我头上。懵。

上完课看senior练习时这位兄弟道场的前辈一直在体碰对手,把对手连着推出去好多次,而且…我总觉得对手并没有在战斗状态了?这样也可以吗?

anyways,回来吃了一大碗夜宵,还喝了可乐,爽。接下去就要出去旅游啦,休课一周!之后继续练习,希望可以打出恰到好处得“啪”一下就弹起来的面。

剑道017 – 好多技术细节可以回顾

打完两次bogu一脸懵以后我们回到了旁边专项练习。
我感觉我得多夸夸自己,所以先说觉得自己做得好的地方:
1. 可以下意识地做到big strike了;
2. Fumikomi有进步,至少连贯了;
3. Kirikaeshi记完整了,虽然给咪咪当motodachi我竟忘了数,但总体还不错;

然后再写一下可以进步的地方和前辈的建议:
1. 左手意识还是不够强,Suburi打了几个以后才有左手用劲的酸软了;
2. Suburi、men strike的从放松,到握紧,再到放松这个循环还是不够肌肉记忆;
3. Kamae有些问题,我容易转右手,醉了,但是右手够得远了又不习惯,时间一长shinai tip就高了,下次再把背挺直一点,让左手肘更好地抵到试试;
4. Footwork左脚抬太高没法发力了,要稍微flexible一点好有更多余地弹出去;
5. Kirikaeshi的sayumen的确是45度,但仍然是打在men的中线上,不是偏离中线的,有这个意识以后打得感觉好多了;
6. Fumikomi-men: 还是那个从放松,到握紧,再到放松这个循环做得不够好,所以打出去没有那种利落地下去回来的感觉;
7. Fumikomi-men:左脚有时候收完是弯的,左脚没有好好发力,也许是上身没有正直地出去,下次有意识地正直着出去可能就会好很多;
8. Fumikomi-men: 我总觉得我举剑不够快,于是就会飞快举剑。但是前辈说我举剑动作太直线了,最好是一个弧线,这样kote才不容易暴露;
9. 咪说我举剑tip还是太低,可能我整个动作还不够快,没做到一气呵成。
10. 每次小碎步冲出去然后到某个点Fumikomi-men的时候气剑体特别不协调,要关注的部分加上了一个距离,直接乱了,哎呀先精进上面那些部分,其他的之后再说吧。

这两天打算自己在家多练练举、左手发力和kamae左脚高度。

Btw前两天在亚麻上买了一个prime送货的不知名牌子的hakama,短了一个号码今天练习爽多了,果然beginner如果还是footwork多露出来一点让人指正一下比较好……友邻说这牛津一样的料子竟然是比赛专用,赚到了,还特别特别好叠。

剑道016

吃饭的时候咪咪在加班,我就顺便临时抱佛脚看了好几个fumikomi的视频准备今天的练习,好在看了,要不然会被有的前辈的胡说八道唬住……


我们又能打bogu啦!~fumikomi没那么别扭了,但还是感觉很不连贯,每次打完都会愣个半秒。有一次我打完一遍愣着、一边慢悠悠冲出去的时候有意识地小步+左脚跟上加快了速度就能感觉到连贯性了,想之后多体会一下。观察了一下jany的动作就很连贯,动作也好快!

最后还和前辈爷爷练习了一下,他提醒我fumikomi是body move first,所以可以先试试蹭出右脚再举剑,之前看了好些视频慢放都是上边身体先出。回头试试jany推荐的fumikomi+strike的分解练习连贯一下上下两部分身体。


打kote似乎好了点,但dou还是很不行,没能阻止自己想平着打的不良习惯,回头想自己多练练。
今天教导主任特意跟我说我打kote的时候,他会先apply seme,这个时候我就举剑。有点明白别人apply seme的时候我也不需要硬刚,直接让他扑个空、出剑抢中线就好?


今天jany和咪咪说我气合变嘹亮了!我也感觉换了个声音更能沉下气收紧core了,打完叫出来也疯癫了…等视频出来了听听自己会是什么饿狼的声音。

快结束的时候教导主任又让我不要在道场里穿着外套和背着包,我杠了一下说我外套拉链拉着我觉得ok,我可以把包拿下来,于是他接受了,和前辈理性对话,摒除asian不良习气从我做起。

剑道015

感恩节前友邻发了我一个视频纠正我的kamae,于是我顺带把实战前的视频都偷学了。这两天在家里蹦蹦跳跳终于找到了fumikomi的感觉,出去的时候重心有意识地下沉可以比较稳。结果今天配上上半身就是一团雾啊!这次好累,我就偷懒只记大家给我的反馈了!


menouchu和kamae:右手打出去会扭,需要有意识地保持正确姿势,避免轻微死手。
kirikaeshi:还是有点记不住,但是至少记得big swing了。
men go through:fumikomi不够;打完别让直接冲;冲远点转身晚点;转完身前进一步准备好;右手又重了,人重心往右倾斜要均衡(呜呜)。
kote go through:看着人正正地打下去效果好,不像之前会打歪或者达到tsuba上,但配上fumikomi准确度还是很不行。
kote men:打的时候前辈在我剑没挥下去就往后退了,说别指望我会等你哦。啊?我太慢了吗?反正kote很不行,没几次打中的。身体没有先往前,友邻教我可以先前倾,这招很好用!连着两下fumikomi要连贯一些。
打了真人就忘了捏紧小指、忘了kamae放松、肩膀放松了。急需恶补fumikomi+strike的连贯动作啊…

btw教导主任发现我kamae左手对了以后很开心地夸我,可能很惊讶我回家做功课了,我心想好在有友邻开小灶!~

最后,hakama实在太长了,我初学者无力驾驭,课到后期松了以后分分钟要踩到,周末泡了开水也没缩水,质量太好。打算买个新的短一点的。

剑道课014

今天我新的hakama到了!左盼右盼终于能等到delivered,上课前去楼下拿回来了。早早到了道场去换衣服,咪咪帮我弄了好久我感觉怎么都怪怪的不仅上衣太宽,hakama也好长,长到我准备好被绊倒摔跤了。

跑步的时候果然相当难受,时不时觉得自己会被绊倒,必须好好注意自己的footwork,一旦离地面远绝对摔倒。

今天上课空打了有几十个men strike吧,打得我右手腕有点受伤,下次可以带护腕去。感谢Jany给的教程,reset了自己的tenouchi之后打出去感觉更对了,strike也更准,如果意识到kamae reset tenouchi稍放松,strike时捏茶巾,就更少左右摇晃了,此时还可以用上背部的力量加出脚距离大一些,更能体会到体的作用。

footwork练习时发现镜子里自己的剑尖略有点歪向右边,可能是重心没有reset好。

结束热身以后莫名开始和senior paring kirikaeshi?然而我们sayumen都还没学,硬着头皮打得一塌糊涂,我还很习惯剑不举过头顶,总之不知道自己在干啥?好在sensei马上让我们退下去一边好好学习了。对着教导主任打了好几轮记了个大概,回家再好好学习一下。btw那个大力抡剑的孩子又来了,看到他打教导主任men和打歪到肩膀的时候我在内心默默双手合十,替他默哀:gomen nasai yo教导主任,谢谢你为beginner的付出,辛苦了!

下次的目标是能记住动作,不要抢,但求动作准确。

回来发愁了好久keikogi领子太大,hakama太长,退换货在加拿大又好麻烦。结果在reddit上看见有人说全棉的话温水第一次洗会缩水,一查:耶,找个时间给温水泡泡让它们缩缩水好了!

明年beginner上课时间变长了,变成了community center的课,还有人来教我们基本内容比如拆剑等等,期待。教导主任说要另交学费,不过道馆的会费相应少交即可。啊,剑道道馆真是我等穷人的健身福音,arigato!

剑道课014

今天是教导主任来带我们练习。妈呀,心累了,他总是说太多但让我们做得太少。Fumikomi前让我们右脚微微slide我也觉得相当奇怪。

最近我发现自己左手的tenouchi有问题,在reset自己的tenouchi,结果reset完导致我kamae也出问题。今天教导主任说我手腕很别扭,这个我感觉到了,但是怎么左手kamae要伸直了?下课我又问了问他,他现场给我调整,感觉更他妈奇怪了啊?我左手的手腕都对不齐剑柄了?我想再确认一下高度是多少,但他说每个人身体都不一样,要感受自己的身体。呃……

BTW今天咪又被教导要右手够到tsuba了,这跟前两次的前辈说好的都不一样,似乎是sensei特意过来提醒。那他还是应该替我们确认清楚手短的怎么办,如何不扭曲自己的体态呢。教导主任自己也有这个问题,不知道他是怎么拿着正常的竹剑的。另外他给我们展示了一下他自己改造的剑,总觉得看着不是很安全……

走的时候又来说让我外套不要穿进道场。但是我没有披在身上,是好好穿着,而且练习完大家都穿上了。反正我下次还要穿进去。

哎虽然教导主任对剑道很热情,对beginner也很热心,但是默默希望暂时不要被他教了,我发现我好不信任他,也有点烦他叨叨叨,腹诽完毕(后来证明他其实是对的,只是讲得细节重点有些偏)。

剑道课012

因为家附近也没有找到合适的场地可以练习全身配合,因此更珍惜道场练习了。
今天的练习还是能感觉到自己的进步的!
因为周末Jany两口子帮我们加课,更能感觉到左手了。
haya suburi的脚步能尽量跟上了,虽然挥剑还是有点挥不动…


练习basic footwork的时候终于有点开窍了,明白了平时前辈喊的“small step, move fast”是什么意思。之前看了练习视频,我出脚步一直太大了,容易不稳,而且左脚绝对不够快。如果目标是把移动做到越快越好,可以马上恢复kamae的话,脚步就可以小一点,此时左脚直一点马上跟上来就可以感觉到往前冲的劲,身体也不会上上下下了。


绕场小跑的时候stevenston道场的前辈在我前面,我跟着他走的时候发现他绕圈是先跑直线,到了角落里用右脚作轴心转九十度,再接着往前,而不是我之前那样跑曲线。这样还可以练到转向,学习了(好在周末Jany也教我们了)。


之后men strike还是有进步的空间。今天sensei开口说话了,但我也照旧没听清楚他说了啥。我自己感觉是挥剑的时候注意:举剑高度、kamae时tenouchi力度和出剑时tenouchi力度、basic footwork左脚快点跟上,整体感觉就会比较对。但做多了所有部分加在一起:strike的方向还是忽左忽右的,更诡异的是剑还会有点转,可能是举剑的时候左手的角度变了。加在一起还是得多多体会…


最后我的kamae有个问题,两位前辈都指出了,我的左手过高了,然而压下去以后我手腕好痛…准备再仔细检查一下kamae的姿势,这两天有空在家里感受一下。
打算周五再问Dr关于sayumen和fumikomi的问题。


今天前辈在正式练习前问我们这有没有beginner能去打kirikaeshi了,啊好想学好想去啊,感觉现在beginner的练习强度还是有点低哎。

剑道课011

周五因为场地原因我们没有练习,心很痒。多亏咪订了楼里的community room,并且Jany和她对象竟也一起来了,所以四个人一起练了一下。

对象的学霸笔记在这里。对象是学霸真好啊,我读书的时候怎么就没搞上一个学霸对象呢,尽自己懒散去了。

haya-suburi(跳跃素振)我们最后做了50次……我觉得我快升天了,右手在疯狂代偿左手上劲。开始的时候做30次聊到Jany的道场因为年轻人多,所以做100次……然而就算是年轻的我也是做不了的。今后争取能把标准的haya-suburi多做一点,慢慢来,再接再厉吧。

补充一下学到的关于Kirikaeshi的呼吸内容:在两次和对手Taiatari(体碰)时快速呼吸。之前之后都是一口气,我猜是慢慢kiai呼出来的,和我底下分析的一样,不过有待验证。

今天的Sayumen(左右面)打得十分之垃圾,相应的do也垃圾,没有一剑打在了人家的护具上,令我非常过意不去,爆炸了。不过之后Jany教的用peripheral vision余光来注意do很有用。以及回家一拍脑袋突然想起来do是为了从人体的肋骨切进去,不是横着砍腰,所以才说很像Sayumen + kote!

Jany事后发在群里的这个视频很有用,感觉是考级考段的标准姿势示范。其中他的Sayumen左手就微微偏离了中线,出剑是45度,而跟我们到场里很多人都不一样啊?周三一定要问问前辈Sayumen要点到底是什么,好好体会一下。

另外也想问一下后退的Fumikomi(踏步)怎么做?

今天去community room受冻练剑道,回来还刷了题、写了心得,居然也还很精神,神了,我返老还童了。但还是要快点睡觉!

2022 PNKF Taikai

过程非常长,具体请参见对象的笔记,因为报名当了志愿者,又被教导主任抓去干了许多意料之外的活,导致大赛结束异常疲倦。

回来以后的大困惑就是查了很多呼吸相关的内容。周六带咪去游泳以后会想起我以前游泳锻炼的时候换气呼吸时,一边水下吐气,一边蹬腿,此时正好是core收紧的时候;加上core在吸气的时候也是收紧,导致根本吸不了足够的气,游了一个来回就会停下来大喘气。

接着查了push up的呼吸,就是吸气下去,呼气上来,不能借鉴,和剑道、游泳这种复杂有氧运动不一样。

footwork时需要kiai绝对是吐气的时候,而不知道怎么吸气才对。

查了很多,发现这篇讨论说得挺有意思的:Ken这位剑友提到吸气是人vulnarable的时候,此时大约就像你右脚出去了,而左脚还没收上来一样,最容易被击穿。他会先慢慢悠长地吐口,再快速吸一大口,仿佛要把对手的ki也吸进去(虽说不能细想,不过就是这个意思),如此往复。倒是很有意义,吸气要快,吐气要悠长,和游泳很像!以后开始和结束的seiza(正坐)就打算练呼吸了。

BTW在大会上有一个卖类似用品店Vendor booth,我去量了一下我的Hakama尺寸,对方一眼就说我是27,然后用24的比划了一下,并跟我说我的Belly button很高,所以得是27. 于是乎我网上买的25自然是太短了……不要脸的想着胸下面都是腿说的就是我了,然而我苦恼于上下身不协调和下盘不稳并没有很高兴(呵呵得不到的总是好的,人呐就是贱)。

剑道课009

哇塞,剑道都上了九次课了,换了射箭课我肯定已经花了三百多刀了,剑道的费用还是低很多的。

因为周三觉得自己练习得很烂,今天练习特地注意了core和左脚用正确的地方发力。但问题就是我kamae前进的时候kiai完了收紧core的时候都要喘不过气了!所以core可能不需要一直收紧的吗?

还有个问题是咪咪说我左脚跟一直抬很高,快速前进的时候尤其,似乎不用抬这么高,那我抬这么高的时候重心是不是不够稳?左边侧面小腿肌肉难道是太弱了?…总之需要多感受一下。

今天又是可爱的白人前辈教我们,穿上了全套bogu(甲)让我们一个一个上去和他对练,就像学校里月考一样发现面对真人自己的组合技打得好垃圾哈哈哈哈。

首先由于不知道中线在哪里,前几次我rei(鞠躬)以后走到的位置都太远,直到最后一次距离才对了;

其次发现自己打men也是一堆问题:距离算不太准,喜欢用右手,打击前剑也举得不够高,后面几次打击时有意识的用左手并且在场下素振几次以后有改善,并且前辈说举剑的时候在中心时一般出剑就不会太错,如果用右手举剑时就歪到右边去了;

然后就还是走步问题,要冲得快好难啊!咪说我跳得和羚羊一样,大错特错。而且我左脚还是抬得过高了…打算自己在家多感受一下到底是哪块肌肉缺了。

学习了打kote完毕时,剑要继续平指着对方冲过去,打完men举着剑冲过去。

另外在观摩的时候,前辈还解释了一下大家对练的Kirikaeshi(切返)和Kakari-geiko(冲击练习?),打击的叫Kakarite,陪练的叫Motodachi。期间Totoro来示范了一下怎么打,惊叹好快啊!

新手村Jany的对象要上甲了,他的动作看着比我们好多了。

还是要够强的肌肉记忆才能在面对真人的时候做出正确的击打,要多多练习。

周末去大会希望能有价格合适的Hakama,如果太贵的话我还是回来继续网上退换好了呜呜。

剑道课007

今天的心得就是记住要靠核心带动身体,上半身放松。然后左手发力还是好难,时不时右手就会用上力,导致我举剑和men strike容易往右偏,如果家里有个镜子能对着练就好了。

今天过节人不多,好些人也到的比较晚。南边道馆的老师这次把俩儿子带来了,好小…下课前围观众人对练,道馆的吉祥物小朋友很擅长打do(胴). 咪咪说她kiai奶凶。

南边的老师碰到自己的儿子就巨严格,要求速度快,儿子没打中、慢了还要大声骂他,要不停地men strike…大过节的别的小朋友都很早下课了,对比明显。庆幸好在当年没去南边学剑道,否则按我这吃软不吃硬的性格早摔门而去了…

不知道怎么回事上上周三被教导主任带过以后左手背就肿了,上周末好了点这周末又肿起来了,决定好好休息一下左手。

最近跟着象友发的这个表格来练push up. 弱鸡如我当然是从墙上俯卧撑开始练起……就这样我手肘还酸呢。

这两天开始可以在厨房counter上撑一些不标准的了,打算再练一阵子再转到counter上。

这个月吃鸡蛋鸡胸比较多,体重也上得去了,打算再观察一阵子看能不能维持这个重量。

剑道课006

今天还是练基础,保持kamae(中段持剑)移动的时候需要左脚很快跟上,整个人笔直但是需要有进攻的姿态,微妙哈。

今天这位前辈又说左脚要绷直,但周五的前辈说不能僵硬,要似弯非弯, 可能我还没找到发力的感觉。

men strike(打面)为了防止右手不捞剑,可以试着放松食指,体的发力可以试着远一点滑步找感觉。但是Ki Ken Tai Ichi(气剑体一致)仍然很难,总觉得出击的时候我抬手很慢,身体有点笨拙,还容易两个脚跟都抬起来了站不稳。

快下课问了一些基础招式的细节,老师说了很多实战操作和心态,比如假装压剑要出招其实是陷阱,比如初学者出招之前紧张马上被看穿…和Art of Learning好像,可能武术竞技心理战有相同的部分。

今天和小孩一起对练有点心累,不敢发力,我当Motodachi(receiver)的时候,有个孩子感觉不是在men strike了,是砸剑,砸很重,砸的我手痛…omg.

于是竟有了一个目标:快点进步,快点加入能点到为止的队伍。哭了。

剑道课005

今天起来左手抓握起来有点酸,这周左脚小腿也酸。
剑道这样让我这种右撇子练练左边身体挺好的。
想找找靠谱的健身方式给小白我练练手臂和背部。

剑道课004

今天练了:
kiai(气),但我练完了声音还没哑,可见是不及格了;
打men(面)的时候手会一下握紧,所以开始的时候要练抓握;
左手出去的时候是直的,剑道果然是左手剑;
kamae(中段持剑)的时候手臂是放松的;
举剑的时候剑柄向下,右手比左手高;
打kote(手),除了出剑是平的,前辈没讲太多细节。

今天感觉footwork(脚步训练)往前搓得还行,往后摇摇晃晃,大概我核心力量还是不够强。

剑道课001

感谢象友带路,咪和我一起去了家附近的剑道馆。本来以为只是围观半小时然后开开心心地去吃高热量披萨,结果竟上了一节课。

围观和现场体验还是挺不同的,看着动作不太复杂,但每次都有好几个细节做不对,反复蹲下也挺累的,最难受的是下跪,我没拉开的脚背韧带痛到不行,无法自己站起来。但总体感受很特别,因为要全神贯注学习动作,内心的噪音变少了,身体也得到了锻炼。

咪问我剑道课和之前去美国箭馆上的射箭课有什么区别?回想了一下,似乎箭馆没有很详细的动作指导,不会死抠一个动作;而且西方射箭的目的明确:注重射中靶心的目标,或者是用更厉害的弓射得更高更快更强,我不太喜欢这样太直白的目标。

和攀岩有什么区别呢?大概我攀岩太小白了,时不时就有自己会受伤的恐惧,攻克了难点也没有喜悦感,只有幸存感。

这两个运动对我来说阻力也很大,复杂的装备、遥远的场馆、嘈杂的人流,加上没有教练也就没有清晰的道路,这几点都让人很难坚持。

剑道也有竞技的部分,不过这个初学阶段我还是主要和自己的身心对话,比如和老师对练也会体验到被眼神盯着心里发怵很想挪开的心情,比如和咪对练我几乎没有一个动作是对的……了解自己的过程还挺有趣的。打算再把Zen in the Art of Archery讲剑道的部分拿出来读一读想象一下。

How to hide API Key on Heroku & Github for React Apps

Image from Unsplash

阅读本文前,你需要大致了解:

✅ Git & Github

✅ JavaScript & React

✅ What is API, API Key & Environment Variables


最近做了某家公司的Online Assessment,内容很有趣,通过和第三方API交互设计并实现一个Web App。同时要求deploy在hosting平台上,比如Heroku, Github Pages, Google Cloud等,让用户可以不需要下载代码,直接在网页端运行。

欢迎大家来玩一下我做好的Web App – WeTalk.ai: https://fun-ai-response.herokuapp.com/ 因为本人的OpenAI的API token过期了,加上heroku开始收钱,本人因为抠门这两样东西都没有续费,所以这个web app已经不能用了。哈哈,但是文章还是有用的。

Web App逻辑并不复杂,第三方API的文档也写得很清楚,所以这部分我自信做得还不错。但问题在于找平台deploy我的Web App时出现了问题:如何在隐藏API key的前提下deploy Web App.

与第三方API交互时,对方会给每个提出请求的用户一个单独的API key,在我们写的代码里,需要用到这个API key才能得到对方的数据。而API key由于是每个用户独一无二的密钥,一旦泄露并被人恶意是用,会给平台和用户带来很多麻烦,甚至有可能给平台造成数据安全问题。

因此,在任何时候都不应该把API key直接写在代码里并上传到任何公开平台,包括Github公开的Repository. 有些第三方平台(比如我用的这个)会主动检测网络上是否有暴露的API key并自动替换,导致我的Web App因为换了密钥无法与第三方再沟通。

这一步我花了很多时间,走了一些弯路,最后在搜索多篇教程+猫咪的一起debug下顺利完成了!还要感谢Discord前端群的群友帮助和象友帮助。

在这篇里我会记录一下这次项目中遇到的有用的教程和踩过的坑,希望给后来人一些参考。

我接下来详细介绍的是Create React App + GitHub + Heroku的workflow. 相信其他的deploy service也是相同的原理。


1. Adding Custom Environment Variables in Create React App

设置方法有很多种,取决于使用的前端framework. 一般来说常常会用到npm的dotenv package. 原理是将API key写在 .env 文件中,并不上传到Github,仅供自己本地使用。

因为我这次用的是React bootstrapped with Create React App,它自带了dotenv library,因此不需要再额外安装。具体可见官方文档关于配置Custom Environment Variables的部分

有几点摘要如下:

  • Custom environment variables should begin with REACT_APP_
  • Any other variables except NODE_ENV will be ignored to avoid accidentally exposing a private key on the machine that could have the same name.
  • Changing any environment variables will require you to restart the development server if it is running.
  • access it by process.env.REACT_APP in your React app.

Stack Overflow的一个例子

  • .env文件中 – REACT_APP_BASE_URL=http://localhost:3000
  • service.js中 – const BASE_URL = process.env.REACT_APP_BASE_URL;

2. Hide API Key from Github

配置完成后,需要在repository的root directory的 .gitignore 文件中加入 .env

样例如下:

# misc
.DS_Store
.env

如果之前不小心已经commit或者push过 .env file到自己的repository,那么需要清理一下Git cache. 让最新的 .gitignore 可以track到目前repository任何不应该被track的文件:

  • 如果想untrack single file,只需要 git rm --cached filename
  • 如果想要untrack所有 .gitignore 中的file,步骤如下:
  • First commit any outstanding code changes (否则git add之后其他进度的文件会消失)
  • run git rm -r --cached . (This removes any changed files from the index
  • staging area)
  • then run git add .
  • then commit: git commit -m ".gitignore is now working"

链接中的注意事项里也提到了,再从git上pull下来的时候这些 .gitignore 中的文件就不会存在了,所以请做好本地处理。

另外,可以在repository中加上 .env.example 告诉其他developer该如何配置app中用到的key value pair.


3. Deploy on Heroku using Git

接下来需要聊聊deploy的问题。这次我尝试了Github Pages和Heroku.

最终Github Pages没有成功,我怀疑是我使用的第三方API专门track了Github来的request并且禁止了。每次我一部署在Github Pages上,我的API key就会被认为泄露,并自动更换,造成了很多痛苦。

如果碰到了可以接受Github Pages的第三方API,可以直接照着Github Pages的deployment来设置,也可以遵循Create React App官方的Github Pages deployment部分进行配置。推荐照着后者的教程,因为可以在deploy之后继续开发,不需要反复deploy,操作非常丝滑。

Github Pages配置Enviroment Variables的部分请参照Discord群的22Chestnut的提供的教程,感谢帮助。


之后我转战了Heroku. 首先如果在别的平台deploy过并按照CRA官方文档修改过 package.json请记得要改回来!我在这部分卡了好久,恢复以后就好了。

接着根据CRA的官方文档来deploy with Heroku.

  • 首先安装Heroku CLI. 我是PC,其他方法我怎么都配置不成功,所以最后用了官方不推荐的npm,最后也成功了。
  • verify installation – heroku --version
  • 跟着步骤login – heroku login

之后就是deploy到Heroku上。如果想在创建app之前就连好Heroku的deployment,需要follow这个教程

我因为已经在安装Heroku之前创建了App,所以步骤略有不同,省略了前几步。

git init # 当时我copy到了一个新的repository里,还没有传到Github上,因此需要init.
heroku create -b <https://github.com/mars/create-react-app-buildpack.git>
git add .
git commit -m "react-create-app on Heroku"
git push heroku master
heroku open

因为Heroku官网的教程和该developer自己的教程出现了一些不同:git push heroku mastergit push heroku main 的区别,我没注意到,因此有了一个报错,最后使用了这个Stack Overflow的办法解决了。

git push heroku HEAD:master 或者 git push heroku HEAD:main 取决于想要用哪个branch deploy.

原理参见这个帖子。指明了用当前的repo来commit到我要deploy的branch.


4. Pass API Key to Heroku through Environment Variable

那么文件都deploy上Heroku了,但是如我之前所说, .gitignore 中的文件包括包含了我API key的 .env并不会被commit到任何repository里。之后怎么将我的API key告诉Heroku呢?

答案是我通过Heroku的方式偷偷告诉它。有两种方式:一种是通过Heroku CLI,一种通过Heroku Dashboard. 参见这篇官方教程

如果是用的React,也可以看这里的教程, 本质上都是一样的。

我用的是terminal command – heroku config:set REACT_APP_HELLO='I love sushi!'

注意读文档的时候不能掠过信息,比如这里: The app must be re-deployed for compiled changes to take effect, because during the build, these references will be replaced with their quoted string value.

因此不管用哪种方式配置了我的API Key,我都需要重新deploy一次。

git commit --allow-empty -m "Set REACT_APP_HELLO config var"
git push heroku main

对于git repository来说,我们没有增删改减任何文件,所以直接 git add .git commit -m "re-deploy" 的话并不会触发heroku的re-deploy.

所以记得commit的时候一定加上 --allow-empty 才会有效果!


5. Sync between Heroku and Github

为了保险起见,commit + push完heroku之后,commit到Github也请加上 --allow-empty 保证能顺利commit.


Reference

最后附上我这次的repository供参考 –

GitHub Repo

并欢迎大家来玩我的Web App – WeTalk.ai: https://fun-ai-response.herokuapp.com/

感谢猫咪的一路帮助和安抚。

History Repeating Itself in “The Nine”

评分:5 / 5

这篇文章是读书推荐,记录一些我的随想。我选用的译本为译林出版社的《九人:美国最高法院风云》。有兴趣的朋友们也可以去读原文。

书籍封面

去年在美国深受爱戴的大法官金斯伯格(Ruth Bader Ginsburg)去世,并且大选未定,战局看似焦灼,出于焦虑我打开了这本书,并且带着很多疑问:为什么当下我觉得习以为常的一些观念竟然有那么多的争议?历史上大家是怎么讨论的呢?当年大家关心的都是什么问题?

读完这本书之后,对于美国现在发生的各种夺人眼球的争论,都能从这本书里看见最高法院判例的影子,并且在当时的讨论中详细到给出了富有争议的数字级别判断方法。

举个例子,我们经常觉得少数族裔收到了系统性的歧视,并且要求在大学录取的时候给予平等。那么这样的平等如何来判断呢?是靠录取名额在族裔间平均分配,还是靠给少数族裔更多名额以弥补历史歧视?这样的弥补政策应该持续多久呢,不可能是永远吧?到什么时候我们才可以说,所有的种族真正平等了?标准是什么?

当然最后得出的判决书不可能如所有人的意,但是却比我坐在那里想当然地带着自身利益去思考要来得有理有据,是一些很好地引起大家思考的判决。在这里分享一些我的梳理。


罗伊诉韦德案——女性堕胎权之争

除了普及当年的一些著名的判例,这本书还讲述了相关的故事和历史,当时的政党组成等等。所有的判例都不是写入法律、永远不变的,每一次相关案件出现都有可能推翻原来的判决,比如颇受争议的堕胎相关:罗伊诉韦德案。这个案件真是至关重要,历史性地赋予了女性堕胎的权利。

围绕着这个案件的立场简直就可以直接分出所有政客和法官的“保守派”、“自由派”和“中间派”立场,以至于后来对于堕胎的立场就像保守派法官们想进入高法的“投名状”一样:必须几十年如一日反堕胎,过去的言论中稍有模糊,就会失去保守派的提名。

保守派这下清楚了,根本无须再争来争去,只需要换几个大法官就能达到目的了。

罗伊诉韦德案自从成为判例以后竟然在之后的高院被以各种各样的形式挑战了好多次了。甚至保守派在高院以堕胎案为立场有预谋地通过塞法官掌控高法也不是什么新鲜事了——历史上最多出现过9个里8个是共和党总统任命的大法官。

为了塞法官保守派也是不顾什么脸面的。书里就提到曾经也有个保守派黑人大法官托马斯任命前被举报性骚扰,在作证会上丑态百出,民主党人也是很愤慨。当时共和党治下白宫的应对办法是想尽一切办法让他光速宣誓。华盛顿邮报的记者已经掌握证据,但因为法官任命仪式结束也就作罢了。这个不由得让我联想到近年卡瓦诺提名大法官的事情,真是太阳底下无新鲜事,快二十年过去了,历史竟然还在重演。

布什诉戈尔案——历史的转折点

读到布什诉戈尔案后,我才发现原来著名的异议不是金斯伯格写的,而是斯蒂文斯写的。这场争论我也通过这本书得到了更多的信息。起因是发现佛罗里达的选票设计有问题,是错位的蝴蝶式选票,很容易填错,因此法院判定可以人工重数。

选票设计可谓是很令人疑惑了

其实当时布什也不一定会输,他的优势还是有的,但赢者可能就是心虚,并且想巩固自己的胜利,因此上诉了高法想要取消戈尔重数票的过程。

本院的多数意见,只会使人们对全国法官工作的评价从充满信心变为悲观失望。法治的真正支柱,在于人们对司法体制的信任。时间总有一天会愈合今天的判决给这一信任造成的伤害。但是,有一点可以肯定的。我们或许无法百分之百地确定,到底谁是今年总统大选的赢家,但最终输家却是显而易见(pellucidlyclear)的,那就是这个国家对法官作为法治公正的守护神的信任。

高法对这件案件的判决不一定是改变了总统人选,但是高法不合理的介入使民众对于法治的信心损害很大。有的大法官为了参与到这种“出风头”的案子里,一定要牵强解释法律,要硬管。硬管的结果就是最高法院在人们的心中失去了公正性,不为法律和事实服务,而变成某一个政党的囊中之物了。高法就像是硬送了布什一个总统,但凡按程序设规则重新计票完成,赢家都会赢得正统一点。

此案的后果不仅导致高法权威性削弱,更导致其中一名法痴法官苏特很失望,觉得没法跟党性太强的同事们共事而想辞职,不过幸好他没有在小布什任上辞职,不然就送了共和党一个提名法官的机会。

不过这样毁灭性的打击也有好的后果。因为受到社会声浪的反弹,很多“中间派”法官开始反思当年自己的所作所为,而开始渐渐走向“自由派”。再加上布什政府过于保守的作风,更进一步推离了最高法院成为了几乎是“最为自由”的一段时间。

有的法官比如肯尼迪也开始借鉴欧盟等国际法来判定美国国内的案件——不再自大,并承认美国也应当向外学习。

美国是世界上最保守的民主国家,有着支持有限政府和低税收的举国共识。实际上,世界上其他民主国家——无论在欧洲或在其他地区——都维持着更为强大的公共部门,并且偏好诸如全民医疗保险和高税收之类的公共政策。相应的,这些国家的法官们也比美国同行更为自由。

从那时候开始,国与国之间的联系不仅仅从贸易、经济上,更从法治上开始互相影响了,并且在走向积极的道路上。

伊拉克虐囚案——制约“总统权力”

布什政府上台之后的事情开始渐渐逼近我们现在时代,我也开始有印象了:“911”和“伊拉克战争”等一系列恐怖袭击和反恐行动。此时,总统权力开始蚕食高法权力,使用的理由是“911”和“伊拉克战争”的“爱国观”:要么同意总统的命令,要么就是不爱国。

借助反恐战争,布什及其盟友正暗中侵蚀着三权分立原则

这个借口我们是不是很熟悉?特朗普政府也很喜欢用这一套话术,只不过他缺少“反恐”这个借口,因此他试图制造“恐怖”,试图挑起跟中国的“战争”。

此时最高法院组成的比例是:7(共和党任命):2(民主党任命),但是理应保守的最高法院却在这样的总统权力的冒犯下而越来越“左”。而这里所说的这个“左”,只是在共和党开始越来越极端的衬托下体现的。

最初,是布什诉戈尔案的延伸后果将奥康纳与肯尼迪推向了自由派一方;

共和党人在布什政府期间,温和中间派越来越少,极端右翼越来越多。我还是对美国了解太少了,还以为这种共和党变成极端右翼倾向是近些年懂王兴风作浪的结果……其实根本是共和党和懂王互相有目的地选择了对方。

这一回合之后,“美国正处于战争状态”之类的说法沦为煽情滥调。

调查表明,虐囚行为在驻伊拉克美军士兵中普遍存在,更可怕的是,许多刑讯行为受到布什行政分支高层的支持。

在总统权力肆无忌惮蚕食国会和高法权力的过程中,伊拉克虐囚案的一些相关案件的判决使得高法从总统那边捍卫了自己的一部分权力。但是谁知道当时国会和下属法院在“战时特殊情况”的借口下已经被布什政府欺负了多少回了。这些类似案件好歹是把当时的美国政府从滑向“军政府统治(独裁)”的道路上打住了。

夏沃案之争——捍卫“司法权”

政治课上老师提到过夏沃案之争,多年之后竟然又在这本书中看到了详细的讨论。

案件经过是佛罗里达的一名女子夏沃突发意外变成植物人,其丈夫几年后觉得希望渺茫决定拔掉她维持生命的仪器,理由是发病前妻子说过不想这样活着。根据佛州法律,如果某人成为残疾,那么他(她)的配偶就可以成为其法律监护人,并且可以代为做出所有的医疗决定。但夏沃的家人认为这一切都是编造,并想从夏沃丈夫那里抢回监护权,让夏沃在生命仪器的维持下活下去。

从此,一场争夺夏沃生与死的法庭之争便从此开始了。

白宫行政权可是过于膨胀了。法院做出解释认为支持丈夫的决定后,布什行政居然跟国会立法(可能是出于政治目的)联合起来直接出一个相关法案专门适用于这个案件,想直接盖过法院的解释。

对她来说,真正的危险在于,国会试图通过类似《特里萨·玛丽·夏沃父母救济法》那样的法律,对法院该怎么判决指手画脚。

通过夏沃事件,奥康纳发现,对司法独立的最大威胁并不是来自国会大厦,而是来自与最高法院仅隔着第一大道的白宫。

最高法院捍卫三权分立原则后,几个法官还受到了极端保守人士的攻击,家里人被枪杀或是法官被射杀。美国的极端保守人士到底是什么毒瘤?反智反人类可不只是特朗普共和党时代的产物,布什时代也是一样的。

可能当时还没有各种social media风行,信息传播没有那么快,所以没有引起现在这样频繁的轩然大波吧。

密歇根大学案——种族分配

这本书还提到了大学录取涉及种族配额的几个案件,至此我才发现原来美国高法对于这个问题有好几个相关判例——此类政策一直在简中自媒体中被“妖魔化”。

不知道以后会怎么样,不过当时几个案例判下来,多数派思路是认为:承认系统性歧视的存在,认为种族确实应该作为考量入学条件的一部分,但是最终目的应当是为了大学学生们的“多元化”。对于有些学校直接提出种族配额来帮助少数族裔的数字化方式提出反对。

不过很具有争议的也是,法院在此等判例上加上一个年限,认为这段时间过后社会应当不会再有种族不平等,因而也就不需要再有种族倾斜政策了。这个很武断的年限不知从何而来,可能是温和中间派的观点了。

奥康纳最后归纳了鲍威尔的判决书,指出他“认为大学对种族背景的考虑,只能是为一种利益:‘保持学生群体的多元化 ’。

奥康纳认为,种族优惠政策不能无休止地延续下去。

强迫人们接受一个期限,此举既可能是奥康纳的一大败笔,也可能是其判决书的一大亮点。

不仅如此,美国对于企业招聘和商业上的倾向少数族裔的种族配额是也很敏感的……生硬的数字化的配额是高法反对的,最终目标还是要求完全不考虑种族因素。


最后

虽然最高法院比起普通民众对法律的诠释和政治现状的考量是比较专业的,但是这也并不意味着他们绝对代表正义和正确,不代表我们可以失去独立思考而迷信这些决定。

最高法院历史上的最黑暗时刻,多发生在行政分支提出国家安全高于一切,而大法官们又屈从这一观点之时。

更加臭名昭著的还在后头,第二次世界大战期间,为了所谓的国土安全,大法官们在是松诉美国案(Korematsu v. United States)的判决中支持了政府将日裔美国人全部驱逐至西海岸集中看管的决定。

书中还提到了很多早年臭名昭著的案件,比如日裔被囚禁西海岸集中营的案件,当时高法也画下了丑陋的一笔。还有当时二战时的一系列“爱国”相关判例,比如“侮辱国旗”之类——不知道如今有没有都没推翻,但当时做出那种判决的原因就是受了“危害国家安全”这种论调的裹挟,因此而违背了宪法——不管是宪法原义还是宪法原则。

除此以外,法官作出的判决难以完全摆脱社会意见、政治因素,或者是法官本人的意识形态。

最高法院本身就是民主过程的产物,用句或许有些冷酷的话说,它既代表着最好的人的利益,也代表着最坏的人的利益。

对我们的最高法院,我们无须寄予太多期望,也不能完全不抱希望。

很好奇美国这种政治制度有没有进化的可能?像现在就有人在讨论,要修改老旧到不行的选举制度,防止共和党的voter suppression.

两党不可避免地靠意识形态加塞最高法官也是一个不健康的趋势。虽然情况并不是一直那么绝望:毕竟有时候高法法官漫长的生涯里会发生意识形态的改变、有的人也会考虑社会的巨大声浪——但是如果越来越多加塞一些有极端观点的法官还是一个很大隐患。

三权在二百多年前的制度下运行,到现在有时难以平衡,正如社会和法律一样,三权分立的制度也需要持续不断地修正和改进,这也是这本书所间接表达的:自由、保守、进一步自由、更快速地保守、晦涩的未来,这大概就是历史的进程吧……衷心希望历史能越来越少地重复。

Kindle Scraper的技术总结和反思

Image from Unsplash

Kindle Scraper的使用教程请见:Kindle Scraper使用指南

本文简要地记录一下代码的逻辑,以便之后回顾、理解并优化,也欢迎有兴趣的朋友讨论和修改。

原生笔记My Clippings.txt的问题:

  1. 强制按照时间顺序生成笔记。这样造成的问题有:
    • 标注不根据书本页码和章节排列,有可能多次前后颠倒;
    • 如果同时看很多本书,笔记会被不同的书拆散;
  2. 自动生成的笔记格式冗余信息过多,不符合大多数人的记录习惯;
    • 每条都需要手动复制粘贴到个人笔记本;
    • 每条都需要手动修改格式;
  3. 无法识别重复的笔记
    • 删除并重复划线会导致重复的笔记,需要手动检阅删除;

Kindle对于购买书籍的笔记整理功能是不错的,可以在自己的账户导出需要的格式。但是对于个人文档就不支持了。如果笔记数量不多,那这些问题还是可以忍受的。但是随着用Kindle的时间增长,笔记数量不可避免地增多之后,手动整理就非常浪费时间,异常痛苦。

鉴于Kindle的笔记格式虽然多种多样,并不十分统一(呵呵)……但是仍然有迹可循,所以我想尝试用Python的方式来整理数据并导出。

网上一搜,发现英文系统的有不少人写过,思路不一,但是都无法简单修改并应用到中文系统。我挑了一个思路清晰整洁的代码kindler作为我的baseline,基于他的代码结构进行修改。

修改内容:

  1. 加入Kindle中文系统的适配;
    • 改用可以encode UTF-8的语法来读写文件;
    • 根据中文格式修改细节(见后面ParseDetails内容)。
  2. 加入笔记的位置信息location,方便日后在Kindle中回顾前后文;
    • 加入informationFrom(title),return tuple(locations, highlights);
    • 将locations和highlights一并写入导出的.txt和.csv.
  3. 一本书内,根据locations排序所有的highlights:
    • 在informationFrom(title)中sort数据
  4. 优化导出的.txt文件名;
    • 加入titleScraper(title),生成文件前替换特殊字符。防止出现遇到特殊字符,文件不会生成也不会报错的情况;
  5. 加入导出.csv的功能;
    • 加入importAsCsv()
  6. 删除Json相关功能.

重中之重ParseDetails(details):

数据整理的简要逻辑如下:

拆分行存为list -> 按delimeter所在位置判定location和highlights在list中的标号 -> 进一步简化location信息 -> location + highlights一起导出。

所有问题都出现在加粗环节。在这里我们掉过很多坑。原因在于没有想到Kindle生成的笔记格式那么不统一:导致我们在测试程序的过程中被卡住,回过头去被动地修改了很多遍。

猫认为我们应该在一开始就整理出所有不同的数据格式,而不是一次次在QA中修改。我同意,因为事后的修改因为我有点不耐烦所以conditional语句写得很没有系统性。

以下是格式相关总结:

常见格式:

==========
Bliss More (Light Watkins)
- 您在位置 #857-857的标注 | 添加于 2021年2月3日星期三 下午5:48:40

Focused thinking is thinking exclusively about the task at hand
==========

但并不是所有格式都如上所示。

与Location行相关的错误:

带有页码+位置信息

==========
When to Jump (Lewis, Mike)
- 您在第 26 页(位置 #435-438)的标注 | 添加于 2019年7月30日星期二 下午1:53:35 

With each new conversation, my voice gained confidence. Another older coworker put it bluntly: “Do you believe in yourself?” I said I did. “Who is responsible for how this jump turns out?” I said I was. “Then you have no risk in trying. You’re betting on yourself here. And you believe in that bet. You have no risk.”
==========

只有页码信息,没有位置信息

==========
自救指南  
- 您在第 18-18 页的标注 | 添加于 2014年10月26日星期日 下午3:30:48 

不管神经衰弱是轻还是重,恐惧都是其发生的根源。冲突、悲伤、内 疚或羞耻可能引发神经衰弱,但恐惧很快就后后来居上
==========

笔记信息:

==========
Kindle Paperwhite 用户指南(第 2 版) (亚马逊)
- 您在位置 #404 的笔记 | 添加于 2014年4月8日星期二 上午11:03:58 

试用
==========

解决办法:更细致的筛选。split字符串之后的list标号需要修改。

与Highlights相关的错误:

没有Highlihgts的书签信息:

==========
反脆弱--从不确定性中获益
- 您在位置 #657 的书签 | 添加于 2014年4月9日星期三 上午8:03:15 


==========

没有Highlights的标注(可能是Kindle的Bug)

==========
Bliss More (Light Watkins)
- 您在位置 #891的标注 | 添加于 2021年2月3日星期三 下午5:48:06 


==========

解决办法:如果highlights为空,则不导出。

之后可以打磨的地方:

  1. 继续打磨parseDetails(details)功能:简化、理清conditional语句。之后能同时使用英文和中文系统。
  2. 在导出的.csv 文件中加一列来区分:标注、笔记、书签;
  3. 加上UX部分,把数据处理部分放到后台,做成一个简单的网页工具,可以适用于不会用Github和Python的人群。不过:
    • 类似的产品有一些,可能只是做自己练习使用;
    • 不适用于不喜欢上传隐私信息的用户。

谢谢阅读。

Kindle Scraper使用指南

程序简介

使用Python自动处理中文Kindle系统的书摘文件“My Clippings.txt”,为每本书生成独立的标注、笔记文档,显示标注、笔记及其对应的位置,支持导出txt, csv格式。可将txt, csv导入Notion, Google Sheets或Evernote等平台整理为更易浏览、编辑的清爽格式。

运行本程序需要安装Python3, 本程序下载地址请见本柴Github

充满爱的开发团队: Shiba Woof (Dev) + Mavis Meow (QA)

整理开发思路和改进意见,在该Script的技术总结里。本柴是代码新手,欢迎大家友好地讨论、debug和report issues.

使用步骤

步骤一:从Github Clone Repository

Clone repo

步骤二:把My Clippings.txt拷贝至当前repo

把Kindle生成的书摘文件拷过来

步骤三:打开terminal运行程序

  1. PC用户打开Windows PowerShell
  2. Mac用户打开terminal
获取txt格式书摘
  1. PC用户请运行 python .\kindle_scraper.py importAsTxt
  2. Mac用户请运行 python3 kindle_scraper.py importAsTxt
  3. 本程序会在当前目录中新建一个文件夹 /highlights ,你的清爽书摘和对应的Kindle位置信息会被储存在 /highlights 文件夹里。
  4. 把导出的txt文件拷贝至各类平台进行后续编辑,拷贝至Notion的效果如下,数字代表位置,文字代表标注或笔记:
copy到Notion后长这样
notion批量导入tips

在Notion右上角菜单栏选择import:

Notion右上角小菜单

选择txt文件格式:

在弹窗中选中本程序处理好的清爽书摘们:

嗒哒~整理好的书摘被批量导入Notion!

Notion批量导入效果

在Notion内对书摘进行各种操作(编辑和注释)都很方便,看起来也很清爽。

在Notion里整理书摘
获取csv格式书摘
  1. PC用户请运行 python .\kindle_scraper.py importAsCsv
  2. Mac用户请运行 python3 kindle_scraper.py importAsCsv
  3. 本程序会在当前目录中新建一个文件夹 /highlights ,你的清爽书摘和Kindle位置信息会被储存在 /highlights 文件夹里。
  4. 请阅读terminal说明或本文“步骤四”内容来用Microsoft Excel打开 UTF-8 format的书摘文件。
获取书摘目录
  1. PC用户请运行 python .\kindle_scraper.py showTitles
  2. Mac用户请运行 python3 kindle_scraper.py showTitles
  3. 书摘目录会显示在terminal上。

步骤四:转换csv文件并导入Notion

4.1 打开highlights文件夹可以看见一家人都都整整齐齐:

4.2 打开一份空白Microsoft Excel, 选中Data -> From Text ->选择要打开的清爽书摘文件

打开空白excel文件

选择要处理的书摘

4.3 在弹窗里选择Deliminated. 并在File Origin选择UTF-8. 然后点击下一步。

经过UTF-8编码就显示中文内容了
File origin选UTF-8

4.4 Delimiters选择Comma,这样是为了把位置(数字)和内容(文字)划分成两列,然后点下一步:

选择分隔符

出现的预览长这样,选择finish.

数据预览

4.5 最后的窗口会询问你把文档插入哪个表单,选择现有表单或新表单都可以,取决于个人需求和喜好。

选择插入位置

4.6 导出的CSV文件长这样,可以直接复制粘贴到Notion的任何文档中。

最后生成的excel文件预览
导入Notion的csv文件预览,选择wrap cells可显示多行

获取程序的帮助文件

  1. PC用户请运行 python .\kindle_scraper.py help
  2. Mac用户请运行 python3 kindle_scraper.py help
  3. terminal中会显示帮助文件。

参考

kindler by sanjamaniam – 本柴的程序是基于kindler程序修改而成。对原程序改动会总结在稍后的技术文章里。

特别鸣谢

谢谢猫咪送的Kindle作为我的生日礼物之一,让我看了很多书并萌生了写这个Script的想法;

并且谢谢猫咪提供的6000+行My Clippings.txt让我们完善这个产品;

最后谢谢猫咪的感情支持?。