691 words
许多人虽然从事开源项目,但对开源协议的具体规定理解仍然较为模糊。他们依然会本能地认为这些项目是属于自己的,尽管已经开源,但仍觉得使用权限由自己决定,最终解释权归自己所有。然而,开源并不是这样的。 对于市面上几乎所有的主流开源协议,如MIT、Apache、GPL等,当你选择开源时,意味着任何人都可以自由复制、使用、修改、分发你的代码。而且,注意,这并不要求必须在GitHub上点击fork才算符合协议的复制。任何形式的复制,包括将源代码打包传到自己的网站上,都是合法合规的。当然,每个协议在修改时都有其特定的规定,大多数协议要求保留原协议和署名,这里暂且不提。 但如果仅仅是复制你的开源代码并放在其他地方,是完全没有问题的。即使使用了你的用户名,用户名也不受法律保护。然而,这一切的前提是代码具有开源协议。有些人认为在GitHub上公开的仓库不都是开源代码,这种看法是错误的。公开源代码和开源是两个不同的概念。 开源的核心不是那些公开的源代码,而是规定源代码如何使用的协议,即仓库中最不起眼的许可证文件。有了这个文件,项目才是开源的;没有这个文件,即使源代码完全公开,也不能自由使用。公开的源代...
1.6k words
背景最近参加了“清澜好声音”需要扒谱一首音乐作为伴奏,沙克负责了旋律部分,将打击乐部分交给了我。由于找不到完美匹配的MIDI文件,于是我自己动手,花了一点时间写了一个能够通过敲击键盘来记录鼓点,并导出为MIDI文件的程序。 解决方案我请ChatGPT编写了一个简单的Python程序,它允许用户通过敲击键盘的空格键来模拟鼓点。程序记录下每次击打的时间点,并将它们转换成MIDI格式。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import midofrom mido import MidiFile, MidiTrack, Messageimport keyboardimport timebpm = 120 # 设置BPMbeats_per_second = bpm / 60print("Press and hold SPACE to start recording. Release to stop.")while True: ...
3.2k words
今天考了ACSL中级组第三轮,题目还是比较有意思的。是关于Rack-O游戏的模拟。 根据题目比较机翻的描述:Rack-O游戏是一种纸牌游戏,玩家需要在牌架上摆放卡牌,并且在抽取卡牌堆中的卡牌时,按照一定的规则进行替换。这次的题目就是要求我们模拟这个游戏的过程,并且计算最后的得分。 问题描述在 ACSL 版的 Rack-O 游戏中,玩家会被告知卡槽数量 s,以及卡牌数量 n。每张卡牌上都有一个在 1 到 n 之间(包括 1 和 n)的专属数字。玩家将会收到 s 张卡牌,然后将这些卡牌从前至后摆放在牌架上。除此之外,玩家还会收到一叠卡牌,形成一个抽牌堆,按照卡牌叠放顺序依次抽牌。如果牌架上的卡牌未按升序排列,那么对于每一张抽到的卡牌都要按以下顺序遵循下列规则: 除牌架上第一张卡牌之外,如果抽到的卡牌的数字比在牌架上某一张卡牌上的数字小 1,则用这张抽到的卡牌替换牌架上这张牌前面的卡牌。 除牌架上最后一张卡牌之外,如果抽到的卡牌的数字比牌架上某一张卡牌上的数字大 1,则用这张抽到的牌替换牌架上这张牌后面的卡牌。 对于牌架上任意三张在相邻卡槽中的卡牌,如果在中间位置的卡牌上的数字并...
197 words
旧时只言冬晴好,今日却盼春满城。待到杨絮纷吹去,风雨晴中风雨情。 In days of yore, we praised the clear winter sky,Now we long for spring to fill the city wide.Awaiting when the willow fluffs have blown away,Through storms and calm, our bond remains, come what may.
1.6k words
前言这两天在捣鼓Hexo博客。我就在想,如果每次写完博客,我该如何发布到网上去呢?我第一个想到的就是Github pages的静态文件托管,但是每次都要手动执行hexo clean && hexo g && hexo d,这样太麻烦了。于是我就想到了Github Actions。 配置分享在经过了无数次的失败后,我终于成功了。我将我的配置分享出来,希望对你有所帮助。 1234567891011121314151617181920212223242526272829303132333435363738394041name: Deploy Hexoon: push: branches: - main # 或者你使用的是master分支,就改为masterjobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup Node.js uses: actions/setup-node@v1 ...
565 words
Long lost.I picked up my pen again.The story of the past let it be dusted off andNo one will ever know again. Standing on the heights of stoneI realized I couldn’t seeMy past, my footprintsMy lost time and youth The fields ahead are still turquoiseThe mountains are still high when I look back And I kneel in reverenceMary told me.“Child, write.“before the truth is lost in the abyss.“before the future is still hopeful.Remember what was first.–It’s the only way. “ 久违了。我再次拿起笔。过去的故事,就让它尘封起来吧,而且再无人...