项目简介

今年,中科院软件所继续举办 “开源软件供应链点亮计划——暑期2023” 项目。该项目与 Google Summer of Code 形式类似:开源社区提供项目需求并提供导师(mentor),在校学生利用暑期时间进行开发,主办方为顺利完成的项目提供一定额度的奖金。无论 GSoC 还是“点亮计划”,都是一种非常好的开源实践范式,能够有效增进高校学生对开源的理解、增加与真实社区的接触,并积累宝贵的经验。本次 TUNA 协会将继续作为社区加入这一计划,提供若干项目需求。TUNA 愿意和大家一起为国内的开源生态添砖加瓦,欢迎有能力、有热情、有时间的小伙伴们参加。

2021 年,TUNA 基于自身与上游需求,共提出开源弹幕系统改进、跨平台 NFC 读写套件的维护与升级、Windows 平台 SSH agent 的统一实现等多个方面的 8 个项目,并有 5 个项目通过立项,4 个项目顺利结项,其中 2 个项目获评优秀:(Windows 平台 SSH agent 的统一实现,学生张奇夫,导师许朋程)获评最佳质量奖;(完善 Gentoo ROCm GPGPU 框架,学生武益阳,导师续本达)获评突出贡献奖。详情可见 TUNA 项目页面官网公示

你也可在活动官网查看 TUNA 的项目列表

我们将于五月份举办项目说明会,具体时间待定。

本页最后更新时间:2023/05/06

注意事项

下面是一些通用的注意事项:

  • 请先详细阅读 活动首页 的介绍、日程安排、FAQ 等,对活动形式和流程有一个基本的认识。
  • 在决定报名前,首先邮件联系导师进行交流,简单地介绍一下你自己。
  • TUNA 成员大多使用 Telegram 作为即时通讯工具,而非 QQ 或微信。希望你能注册并加入 TUNA 群组以进行更细致的讨论(加入方式见本页面底部)。
  • 不要担心太难/工作量太大,在截止日期前,项目内容都是灵活可更改的。

项目列表

自有项目

下面的项目都从 TUNA 的实际需求而来,目前或者将作为 TUNA 的自有项目开放源码,由 TUNA 和开发者共同维护。

优化 TUNA 镜像站帮助文档中的 mirrorz-help 支持

  • 项目描述:TUNA 镜像站帮助页面(例如 /help/ubuntu)作为镜像源的使用指引,是镜像站必不可少的页面,广为用户熟知和访问;与此同时,很多镜像站也有帮助文档的需求,从而有大量的尝试将 TUNA 的帮助文档迁移到自家前端中。然而,我们观察到,TUNA 的 Markdown 文档为了达到一些高级功能,使用了一些「黑魔法」(静态替换由 Jekyll Liquid 实现,动态替换由 Markup.js 实现),难以迁移到其他镜像站的前端,各家镜像站为了使用此份帮助,往往需要较多的前期开发成本,这份帮助文档也频繁更新,为下游增加了不少维护压力;为了减少开发成本和维护压力,mirrorz-help 意在使用一个可交换的文档格式(MDX),提供一个帮助文档的模板,一方面能直接为各个镜像站渲染帮助页面(例如 mirrors.help/ubuntu/?mirror=BFSU),另一方面也希望这能使得各家镜像站更方便地将现有帮助文档整合进自家前端。目前,TUNA 前端正在将旧有帮助文档逐渐替换为 mirrorz-help 提供的帮助模板,然而,为了使得 mirrorz-help 的模板提供的高级功能能够对应到 TUNA 前端中的高级功能,需要将 mirrorz-help 的 MDX 转译(transpile)为一份能够使用 TUNA 前端「黑魔法」的 Markdown,而这种转译的实现目前也是由正则表达式驱动的「黑魔法」。
  • 项目难度:高
  • 项目社区导师:郑鈜壬
  • 导师联系方式:hongren.zheng (at) tuna.tsinghua.edu.cn
  • 项目产出要求:
    • 清除转译「黑魔法」,具体来说,使用正确的 MDX 解析器生成一份使用 TUNA 前端高级功能语法的 Markdown。
    • 清除 TUNA 前端「黑魔法」,一种可能的路线是将 mirrorz-help 中的 MDX 渲染直接搬入 TUNA 前端,另一种可能路线是将 MDX 转译为使用 Vue 的 Markdown
    • 如果采取第一种路线,可以将 mirrorz-help 中的 MDX 渲染提取成库,供其他镜像站前端使用
  • 项目技术要求:
    • TypeScript
    • React 与 Vue
    • Jekyll 与 Next.js
  • 相关的开源软件仓库列表:

清华大学网络学堂助手(Learn Helper)更新迭代

  • 项目描述:Learn Helper 是一站式展示清华大学网络学堂(课程教学平台)上内容的浏览器插件,目前支持学生端的作业、公告、文件、讨论、答疑的分类呈现,相比网络学堂有方便、快捷、信息密度高等优势。目前 Learn Helper 支持 Chrome、Edge、FireFox 等现代浏览器,并拥有超过一万名校内活跃用户。本项目计划对 Learn Helper(以及它依赖的网络学堂信息解析库 thu-learn-lib)进行更新迭代,支持新的浏览器插件标准,并加入更多功能。
  • 项目难度:高
  • 项目社区导师:陈晟祺
  • 导师联系方式:shengqi.chen (at) tuna.tsinghua.edu.cn
  • 项目产出要求:
    • 对 thu-learn-lib
      • 增加教师端的部分信息获取与解析(如作业、公告)
      • 增加对网络学堂的写入支持(如学生提交作业、教师批量提交成绩等)
    • 对 Learn-Helper
      • 扩展项目架构以在所有浏览器上完整支持 Manifest V3
      • 接入网络学堂的新增功能,如问卷等
      • 修改样式,增加深色模式
      • 实现 i18n 支持,并增加英语翻译
      • 实现 issue 中的其他需求(可与导师具体讨论确定)
  • 项目技术要求:
    • TypeScript 编程
    • 前端框架
      • React + Material-UI + Redux
      • Webpack 打包
  • 相关的开源软件仓库列表:

flutter-nfc-kit 更新迭代

  • 项目描述:flutter-nfc-kit 是一个用于 Flutter 的跨平台 NFC(近场通信)开发工具包。它为开发人员提供了简洁易用的 API,支持 Android 和 iOS 操作系统,让您轻松实现 NFC 功能。利用该工具包,开发者可以完成 NFC 标签读取、写入等操作。flutter-nfc-kit 提高了跨平台NFC应用开发的效率,使开发者专注于创造出更出色的 NFC 体验。本项目计划对 flutter-nfc-kit 做更新迭代,支持背景调度和更多标签/卡类型。
  • 项目难度:高
  • 项目社区导师:党凡
  • 导师联系方式:fan.dang (at) tuna.tsinghua.edu.cn
  • 项目产出要求:
    • 对 flutter-nfc-kit
      • 增加 NTAG 系列的支持
      • 增加 MiFare Classic 的操作
    • 对 NFSee
      • 扩展更多信息的显示
      • 扩展 NFC 标签写入的功能
      • 实现 issue 中的其他需求(可与导师具体讨论确定)
  • 项目技术要求:
    • Flutter 编程
    • NFC 相关文档阅读能力
  • 相关的开源软件仓库列表:

上游项目

下面的项目非 TUNA 维护,由 TUNA 成员和相应的上游社区成员(可能为同一人)共同担任导师。项目成果将以 Pull Request 的形式回馈给上游项目。

Debian 上 Zotero 6 与 Node.js 的可复现构建研究

  • 项目描述:Zotero 是基于 Gecko web 引擎的学术文献管理器。Zotero 4 在 Debian 9 (Stretch) 时代广受欢迎。但是上游开发团队在 Zotero 5 版本对代码进行了重构, Debian 上的构建开始变得困难,最终没有人能够成功转进。Zotero 已经迭代到版本 6 ,本项目目标是重新在 Debian 上打包 Zotero,并保证其可复现地构建。本项目预计极具挑战,任务包括:理解并复现 Zotero 的构建逻辑;分离由 Zotero 定制版的 Gecko 独立构建;扫描需要的 node.js 依赖并学习 Debian Javascript 团队的工作流程打包。
  • 项目难度:高
  • 项目社区导师:续本达
  • 导师联系方式:orv (at) debian.org
  • 项目产出要求
    • 完成符合 Debian 要求的 Zotero 6 包
    • 并被 Debian 官方采纳
  • 所需知识和技能
    • 有一年以上的 Debian 使用经验
    • 有一年以上的 Zotero 使用经验
    • 熟练使用 Git
    • 熟悉 node.js 生态
    • 理解 Debian 包管理器原理
  • 相关的开源软件仓库列表
    • Debian 新人开发指南: https://www.debian.org/doc/manuals/maint-guide/
    • Debian 知识大全: https://www.debian.org/doc/manuals/debian-reference/

实现一个用户态 CUDA 模拟器

  • 项目描述:CUDA 作为目前最为流行的 GPU 通用计算框架已经被应用于众多的开源应用中,涵盖从机器学习、科学计算到图像处理的各个领域。然而在发行版打包 CUDA 应用的过程中也遇到了诸多的阻碍,除了其闭源协议导致的难以重分发之外,CUDA 应用的测试也往往因为需要对真实硬件的访问而被忽视,或是只能由维护者手动测试。在开发多机并行 CUDA 应用的过程中也往往需要依赖云服务商提供的硬件以测试其正确性。本项目预期实现一个用户态 CUDA 模拟器,在 CPU 上运行 CUDA kernel,并模拟其他常用的 CUDA 运行时 API,以期实现在无需真实硬件的情况下对 CUDA 应用进行测试与开发。
  • 项目难度:高
  • 项目社区导师:曹隽诚
  • 导师联系方式:caojc19 (at) mails.tsinghua.edu.cn
  • 项目产出要求
    • 一个可以在无修改的情况下运行简单应用的 CUDA 模拟器
  • 所需知识和技能
    • CUDA 开发基础
    • C++ 开发
  • 相关的开源软件仓库列表

[Read More]

项目简介

今年,中科院软件所继续举办 “开源软件供应链点亮计划——暑期2022” 项目。该项目与 Google Summer of Code 形式类似:开源社区提供项目需求并提供导师(mentor),在校学生利用暑期时间进行开发,主办方为顺利完成的项目提供一定额度的奖金。无论 GSoC 还是“点亮计划”,都是一种非常好的开源实践范式,能够有效增进高校学生对开源的理解、增加与真实社区的接触,并积累宝贵的经验。本次 TUNA 协会将继续作为社区加入这一计划,提供若干项目需求。TUNA 愿意和大家一起,为国内的开源生态添砖加瓦,欢迎有能力、有热情、有时间的小伙伴们参加。

2021 年,TUNA 基于自身与上游需求,共提出开源弹幕系统改进、跨平台 NFC 读写套件的维护与升级、Windows 平台 SSH agent 的统一实现等多个方面的 8 个项目,并有 5 个项目通过立项,4 个项目顺利结项,其中 2 个项目获评优秀:(Windows 平台 SSH agent 的统一实现,学生张奇夫,导师许朋程)获评最佳质量奖;(完善 Gentoo ROCm GPGPU 框架,学生武益阳,导师续本达)获评突出贡献奖。详情可见 TUNA 项目页面官网公示

我们将于五月份举办项目说明会,具体时间待定。

本页最后更新时间:2022/5/8 19:00

注意事项

下面是一些通用的注意事项:

  • 请先详细阅读 活动首页 的介绍、日程安排、FAQ 等,对活动形式和流程有一个基本的认识。
  • 在决定报名前,首先邮件联系导师进行交流,简单地介绍一下你自己。
  • TUNA 成员大多使用 Telegram 作为即时通讯工具,而非 QQ 或微信。希望你能注册并加入 TUNA 群组以进行更细致的讨论(加入方式见本页面底部)。
  • 不要担心太难/工作量太大,在截止日期前,项目内容都是灵活可更改的。

项目列表

自有项目

下面的项目都从 TUNA 的实际需求而来,目前或者将作为 TUNA 的自有项目开放源码,由 TUNA 和开发者共同维护。

移植 CanoKey 固件到 nRF52840

  • 项目描述:CanoKey 是开源的硬件密钥项目,支持 WebAuthn、OpenPGP、PIV 等多种协议,其完全开源的版本基于 STM32L432 单片机。nRF52840 是 Nordic Semiconductor 公司推出的芯片,与 STM32L432 相比多了密码运算等特性,且基于 nRF52840 的 USB 开发板更容易取得,方便了用户制作自己的开源安全密钥。本项目的预期目标是将 CanoKey 的固件移植到 nRF52840 上,使开发者可以有更多硬件选择。
  • 项目难度:高
  • 项目社区导师:党凡
  • 导师联系方式:fan.dang (at) tuna.tsinghua.edu.cn
  • 项目产出要求:
    • 一个适用于 nRF52840 的 CanoKey 固件
  • 项目技术要求:
    • ARM 开发基础
    • USB 协议栈
  • 相关的开源软件仓库列表:

使用 Rust 开发的视觉小说引擎

  • 项目描述:视觉小说是一种电子游戏,是有声读物的衍生产品。它通常以文字为主,辅助以图像与语音。游戏流程呈树状,并根据玩家的选项不同有着不同的路线。这样的游戏创作比较复杂,有一定的门槛。本项目希望以新兴的编程语言 Rust 为主,从头开发一个高扩展性的、创作友好的视觉小说引擎。
  • 项目难度:高
  • 项目社区导师:许朋程
  • 导师联系方式:i@jsteward.moe
  • 项目产出要求:
    • 跨平台:至少支持 Windows、Linux、MacOS 桌面平台
    • 一个良好定义的、创作友好的视觉小说描述格式(例如 JSON 或者 YAML),要求该格式可以使用一般的文本编辑器编辑,如 VSCode
    • 一个嵌入在视觉小说中的脚本语言及引擎,可以是现有脚本语言或者自创语言
    • 基础的国际化(i18n)支持,至少提供简单的切换文本语言的功能
    • 一个基于 WebAssembly 的扩展系统,扩展应该能被脚本语言使用
    • 一个基于命令行的视觉小说前端
    • 一个 GUI 的图形化视觉小说前端
  • 项目技术要求:
    • Rust 开发
    • 编译原理
    • WebAssembly 开发
    • 跨平台 GUI 相关技术,可以是 Qt 或者网页前端技术
  • 相关的开源软件仓库列表:

上游项目

下面的项目非 TUNA 维护,由 TUNA 成员和相应的上游社区成员(可能为同一人)共同担任导师。项目成果将以 Pull Request 的形式回馈给上游项目。

Debian 高性能分布式只读文件系统

  • 项目描述:CernVM-FS 是欧洲核子中心研发的基于 HTTP 的只读文件系统,它优秀的缓存性能令它成为软件分发的优秀载体,被大科学仪器如江门中微子实验等采用。CernVM-FS 的官方创建了 Debian 软件包,但是不符合 Debian 社区的官方标准。你的任务是制作符合 Debian 官方标准的 CernVM-FS 软件包,包括服务端和客户端,方便在 Debian 系统上快速部署科学软件。
  • 项目难度:高
  • 项目社区导师:续本达
  • 导师联系方式:orv (at) debian.org
  • 项目产出要求
    • 完成符合 Debian 要求的 CernVM-FS 包
    • 并被 Debian 官方采纳
  • 所需知识和技能
    • 有一年以上 Debian 使用经验
    • 熟练使用 Git
    • 了解 Debian 包管理器原理
  • 相关的开源软件仓库列表
    • CernVM-FS官方网站: https://cernvm.cern.ch/fs/
    • Debian新人开发指南: https://www.debian.org/doc/manuals/maint-guide/
    • Debian知识大全: https://www.debian.org/doc/manuals/debian-reference/

[Read More]

项目简介

今年,中科院软件所与华为 openEuler 项目继续共同举办 “开源软件供应链点亮计划——暑期2021” 项目。本次 TUNA 协会将继续作为社区加入这一计划,提供若干项目需求。欢迎有能力、有热情、有时间的小伙伴们参加,也欢迎 TUNA 成员们提出更多需求。TUNA 愿意和大家一起,为国内的开源生态添砖加瓦。

2020 年,TUNA 基于自身与上游需求,共提出了涉及镜像站基础设施、应用软件移植与更新、发行版维护、性能优化等多个方面的 14 个项目,并有 8 个项目通过立项,7 个项目顺利结项,一个项目(将 xgboost 与 prophet 等数据科学软件库集成到 Debian GNU/Linux,学生周默,导师 Aron Xu)获评最佳质量奖。详情可见 TUNA 项目页面官网公示。 TUNA 社区代表也参与了后续举办的开源软件供应链 2020 峰会(可见 TUNA 博客),与其他社区积极地进行交流。

你也可在活动官网查看 TUNA 的项目列表

我们将于五月份举办项目说明会,具体时间待定。

本页最后更新时间:2021/4/23 23:00

注意事项

下面是一些通用的注意事项:

  • 请先详细阅读 活动首页 的介绍、日程安排、FAQ 等,对活动形式和流程有一个基本的认识。
  • 在决定报名前,首先邮件联系导师进行交流,简单地介绍一下你自己。
  • TUNA 成员大多使用 Telegram 作为即时通讯工具,而非 QQ 或微信。希望你能注册一个并加入 TUNA 群组以进行更细致的讨论(加入方式见本页面底部)。
  • 不要担心太难/工作量太大,在截止日期前,项目内容都是灵活可更改的。

项目列表

自有项目

下面的项目都从 TUNA 的实际需求而来,目前或者将作为 TUNA 的自有项目开放源码,由 TUNA 和开发者共同维护。

开源弹幕系统改进

  • 项目描述:弹幕是常用的听众与讲者的互动手段。TUNA 开发了自己的 C/S 弹幕系统 danmaQ(见下面的仓库),使用于多种场合,也被多个发行版收录。其服务端使用 Python 编写,客户端使用 Qt 编写,基本实现了跨平台。然而,目前该项目缺乏维护,代码比较陈旧,一些功能缺乏(如 Web 弹幕墙)、不完善(如审核)或已经损坏(如微信互联)。此外,清华大学计算机系科协亦有一套自己实现的弹幕系统 Comment9(见下),使用 Node.js 编写。它与 danmaQ 相比,具有一些高级功能(如多个活动、弹幕墙、多路审核、支持硬件弹幕机),但缺乏弹幕属性配置等。我们希望,整合当前两个系统的功能,改进得到一套全功能的开源弹幕系统,覆盖用户需求。
  • 项目难度:高
  • LICENSE:GPL v3
  • 项目社区导师:陈晟祺 (@Harry-Chen on GitHub)
  • 导师联系方式:shengqi.chen (at) tuna.tsinghua.edu.cn
  • 合作导师联系方式:张宇翔,yuxiang.zhang (at) tuna.tsinghua.edu.cn, @z4yx on GitHub
  • 项目产出要求:
    • 总体要求
      • 尽可能保持与当前实现的兼容性
      • 所有代码使用 GPLv3 许可证开源
      • 所有项目均需要中英双语支持
    • 弹幕服务端(建议依旧使用 Python + Flask)
      • 支持独立的多个活动,按需留存记录,能够导出
      • 发布、订阅、审核可以单独设置密码
      • 每个活动分别支持多种接入(至少包括网页、微信、Telegram)
      • 支持多种不同属性的弹幕(颜色、位置、速度)
      • 支持 Web 弹幕墙(用户可通过命令设置头像、昵称等)
      • 具有 Web 版管理后台,支持审核并设置属性(人工置顶等)
      • 具有 HTTP / WebSocket API,能够主动向客户端推送弹幕
      • 保留弹幕机配置功能
      • 有良好的性能表现
      • 配备 Dockerfile,能够简便地部署运行
    • 弹幕客户端(Qt)
      • 支持多显示器,并能够选择弹幕在哪些显示器上工作
      • 在各个系统上均正确支持高分屏(HiDPI)
      • 能够根据服务器推送的弹幕和属性,正确进行绘制
      • (可选)支持故障恢复(自动重连+跳过已经发送的弹幕)
      • 有良好的性能表现
  • 项目技术要求:
    • Qt + Python + Node.js 编程(基本语言、简单GUI、使用网络框架)
    • 网络编程(WebSocket / HTTP 协议)
    • NoSQL 数据库(redis / mongoDB)
    • 简单前端设计(CSS / Javascript)
  • 相关的开源软件仓库列表:

跨平台 NFC 读写套件的维护与升级

  • 项目描述:我们基于 Flutter 框架,实现了跨平台的 NDEF 格式解析库、移动端 NFC 框架和 NFC 信息读取应用 NFSee。目前,Flutter 已经发布了 2.0 版本,引入了较多的变化,迁移到新框架有一定的工作量。同时,在使用过程中,这些库积累了一些 bug 和功能请求,需要进一步的修复和实现。
  • 项目难度:中
  • LICENSE:MIT
  • 项目社区导师:陈晟祺
  • 导师联系方式:shengqi.chen (at) tuna.tsinghua.edu.cn
  • 项目合作导师:党凡(fan.dang (at) tuna.tsinghua.edu.cn)
  • 项目产出要求:
    • 将提供的三个项目均迁移到 Flutter 2.0 版本
    • 维护 NDEF 库,修复 bug,提供更多格式支持
    • 维护 flutter_nfc_kit 库,修复 bug,实现流式读卡接口(可选),并相应更新文档
    • 维护 NFSee,修复界面 bug,并添加更多卡片支持(如果有)
  • 项目技术要求:
    • 使用过 Dart 编程语言和 Flutter 开发框架(或能够及时学习)
    • 了解 NFC 基础知识和常见的 NFC 标准(导师可提供相关文档指导)
    • 有支持 NFC 的 Android / iOS 设备(可提供,但具备更佳)
  • 相关的开源软件仓库列表:

Windows 平台 SSH agent 的统一实现

  • 项目描述:在 Windows 平台使用 ssh agent 远不及 Linux 平台方便。通常 ssh agent 需要满足以下两个角色:
    • 保管用户的 ssh private key 或是和 smartcard 通信
    • 接受来自 ssh 客户端的 authentication 请求

    Windows 上存在 PuTTY (pageant),Win32 OpenSSH, WSL OpenSSH 等多种 ssh 实现,有 pageant socket 和 windows named pipe (OpenSSH) 两种 agent 通信协议。同时,agent 实现也有 GnuPG agent (simulated pageant, for gpg smartcard), Windows OpenSSH agent 两种。本项目需要参与学生实现一个 ssh agent 协议翻译器,实现不同 ssh 客户端使用同一个 ssh agent 实例的任务。

  • 项目难度:高
  • LICENSE:GPLv3
  • 项目社区导师:许朋程
  • 导师联系方式:i (at) jsteward.moe
  • 项目产出要求:
    • Windows 平台的 agent 翻译中间件
    • 支持 PuTTY, WSL2 OpenSSH, Win32 OpenSSH 作为客户端
    • 支持 Win32 OpenSSH agent, PuTTY Pageant, Win32 GnuPG emulated ssh agent 作为 agent 服务
      • GnuPG agent 需要支持 smartcard authentication
    • 支持客户端进行 authentication 操作
    • 支持客户端进行 ssh agent forwarding
    • 支持简单的管理操作,如:
      • ssh-add -l 列出所有 public key signature
      • ssh-add -L 打印所有完整 public key
      • 添加一个 key 到 ssh agent
      • 删除一个 key
    • 对于 WSL 支持,利用 Windows 10 17063 引入的 AF_UNIX socket 功能(详见 文档)而不是 socat
  • 项目技术要求:
    • 熟悉任何一种 Windows 平台上可以 开箱即用 的的编程语言(推荐 C++/C# .NET,也包括脚本语言,如 PowerShell)
    • 熟悉 Windows named pipe, Unix socket (on Linux and Windows) 相关操作
    • 了解 ssh agent 的工作机理和使用方法
    • 了解 gnupg 使用方法(ssh 模拟部分)
  • 相关的开源软件仓库列表:

MirrorZ:镜像站搜索引擎——镜像站状态的表示、收集与利用

  • 项目描述:国内镜像站较多,但其内容、同步状态、网络环境各不相同。例如 OpenWrt 镜像,只有部分镜像站拥有 snapshots 的内容(参考此处),又例如一些镜像的同步状态落后几天乃至几周(参考此处),其使用的同步后端也各不相同,又例如一些高校的镜像站对校外限速,例如其接入的线路是教育网,对三大运营商用户来说访问较为不理想。之前的 mirrorhub 项目静态地通过用户的网段进行负载均衡,目前的 mirrorz 只有实验性的自动跳转后端与搜索后端,上述实现的指标与功能都不够完善,效果也不理想,所以一个兼顾上述三项内容的镜像站搜索引擎是我们所需要的。
  • 项目难度:中
  • LICENSE:MIT
  • 项目社区导师:郑鈜壬 (@ZenithalHourlyRate on GitHub)
  • 导师联系方式:hongren.zheng (at) tuna.tsinghua.edu.cn
  • 项目产出要求:
    • 对镜像站的状态有较好的表示
    • 对镜像站各镜像的同步状态有较好的表示
    • 将上述指标进行收集
    • 基于收集的指标实现自动跳转或反代的后端
    • 如果可能,实现一个搜索后端
  • 项目技术要求:
    • 爬取镜像站状态的爬虫(例如使用 Python、Node.js 实现)
    • 数据库 (例如 InfluxDB)
    • 高性能的后端 (例如使用 Rust、Go 实现)
  • 相关的开源软件仓库列表:

SCIM Qt5 移植

  • 项目描述:SCIM 是历史悠久的输入法框架,早期为 GNU/Linux 系统的中文本土化立下了汗马功劳,然而近年来 SCIM 的开发团队已经不再活跃,开发停滞,项目处于维护状态。当前 SCIM 依旧可以在各大发行版上顺畅使用,唯一缺失的功能是对 Qt5 的支持。本项目计划把 SCIM 移植到 Qt5。
  • 项目难度:高
  • LICENSE:LGPL v2.1
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求
    • 运行于 Qt5 的 SCIM
    • 修复 bugs.debian.org 上的其它 SCIM bug
  • 所需知识和技能
    • 有 SCIM 使用经验
    • C++ 编程能力
    • Qt 编程经验
    • 有一年以上 Debian 使用经验
  • 相关的开源软件仓库列表
    • SCIM: https://github.com/scim-im/scim/
    • Debian SCIM 包: https://packages.qa.debian.org/s/scim.html
  • 说明:本项目由于上游已经不再活跃,社区计划 fork 并接手这一项目,因此作为社区自有项目发布。

上游项目

下面的项目非 TUNA 维护,由 TUNA 成员和相应的上游社区成员(可能为同一人)共同担任导师。项目成果将以 Pull Request 的形式回馈给上游项目。

Gentoo Android App

  • 项目描述:Gentoo on Android 可以在 Android 上运行 Gentoo Prefix,实现无性能损耗的完整的 GNU 环境。然而,当前的 Gentoo on Android 一方面需要 root 权限,另一方面需要手动安装,亟需一个不需 root 的 Android App 完成安装,更方便地把手机转换成开发和生产工具。在 Android 的系统中,每个 App 有一个专有的用户 uid 和一个保留的空间存放数据,适合嵌入一个这个 uid 下的 Gentoo Prefix 实例,解决当前 Gentoo on Android 的两个问题。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:许朋程
  • 导师联系方式:i (at) jsteward.moe
  • 合作导师联系方式:
    • 续本达,heroxbd (at) gentoo.org
    • 陈晟祺,shengqi.chen (at) tuna.tsinghua.edu.cn
  • 项目产出要求
    • 自由开源的 Gentoo Android App。
  • 所需知识和技能
    • 有 Android App 开发能力
    • 有一年以上 Gentoo 和 Android 使用经验
    • 熟练使用 Git
  • 相关的开源软件仓库列表
    • Gentoo on Android: https://wiki.gentoo.org/wiki/Project:Android
    • Nix on Android: https://f-droid.org/en/packages/com.termux.nix

完善 Gentoo ROCm GPGPU 框架

  • 项目描述:ROCm 是 AMD 显卡的自由开源的科学计算系统,HIP 是 ROCm 的 CUDA 兼容层,提供类似于 CUDA 的 API。然而 ROCm 和 HIP 的文档校为缺乏,除了官方指定的个别平台之外,安装和部署较为困难。Gentoo Linux 作为一个元发行版,已经率先完成了对 ROCm 的支持。但是其构建系统仍有一系列问题不能满足 Gentoo 社区的官方要求。本项目将完善 Gentoo 的 ROCm 软件包,并为 PyTorch, Tensorflow 提供 AMD 设备上的进行方案,完成发行版上开源 GPGPU 框架的布局。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求:
    • 修复 Gentoo 的 ROCm 软件包、PyTorch-ROCm 软件包和Tensorflow-ROCm 软件包的构建系统 bug
  • 所需知识和技能:
    • 有一年以上 Gentoo 使用经验
    • Gentoo portage/ebuild 理解和写作能力
    • shell 编程能力
    • 熟练使用 Git
  • 相关的开源软件仓库列表
    • ROCm: https://github.com/RadeonOpenCompute/ROCm
    • Gentoo Portage 软件仓库: https://gitweb.gentoo.org/repo/gentoo.git
    • Gentoo Science Overlay:https://github.com/gentoo/sci/

Emacs Jupyter client

  • 项目描述:Emacs 是久负盛名的编辑器,以其高度的可编程扩展性闻名于世。Jupyter 是基于 HTTP 的远程异步运行系统,在科学计算有广泛的应用。EIN 项目为 Emacs 提供 Jupyter 客户端,可以弥补 Jupyter 网页上输入功能薄弱的劣势,把 Emacs 的强大编辑功能与 Jupyter 异步执行功能有机结合,成为 literate programming 的最强方案之一。但是,EIN使用的 HTTP 框架由基于 callback 的异步编程框架,维护较为困难,本项目将使用 coroutine 的函数式编程模型重写 EIN,完成现代的 Emacs Jupyter 客户端。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求
    • 使用函数式 coroutine 重写 EIN 的异步模块,提升 EIN 的稳定性。
  • 所需知识和技能
    • 有一年以上 Emacs 使用经验
    • 有 Emacs LISP 编程经验
    • 熟练使用 Git
  • 相关的开源软件仓库列表
    • EIN – emacs-ipython-notebook: https://github.com/millejoh/emacs-ipython-notebook

[Read More]

繁忙的期中周,悠闲的金枪鱼(只有你一个没有期中的比较闲吧)。在这种百闲之中偷着忙的 TUNA 成员应邀来到南京,来到了开源软件供应链2020峰会的现场。

开源软件供应链2020峰会是「开源软件供应链点亮计划——暑期2020」的后续会议,既「围绕现代软件构建模式的关键供应关系网络——开源软件供应链展开深入解读,论道开源最新技术前沿话题」,也对暑期的项目进行总结,并展望2021年的计划。

TUNA 作为国内较大的高校开源社区,参与了「点亮计划」,从而也参与这次峰会。

[Read More]

项目简介

今年,中科院软件所与华为 openEuler 项目共同举办了 “开源软件供应链点亮计划——暑期2020” 项目。该项目与 Google Summer of Code 形式类似:开源社区提供项目需求并提供导师(mentor),在校学生利用暑期时间进行开发,主办方为顺利完成的项目提供一定额度的奖金。无论 GSoC 还是这次的“点亮计划”,都是一种非常好的开源实践范式,能够有效地增进高校学生对开源的理解、增加与真实社区的接触,并积累宝贵的经验。

本次 TUNA 协会有意作为社区加入这一计划,提供若干项目需求。欢迎有能力、有热情、有时间的小伙伴们参加,也欢迎 TUNA 成员们提出更多需求。TUNA 愿意和大家一起,为国内的开源生态添砖加瓦。

你也可在活动官网查看 TUNA 的项目列表

我们于 2020/5/23 举办了一次项目说明会,详情可见 活动公告,其中有讲稿与录像下载。

本页最后更新时间:2020/5/24 21:00

注意事项

下面是一些通用的注意事项:

  • 请先详细阅读 活动首页 的介绍、日程安排、FAQ 等,对活动形式和流程有一个基本的认识。
  • 在决定报名前,首先邮件联系导师进行交流,简单地介绍一下你自己。
  • TUNA 使用 Telegram 作为即时通讯工具,而非 QQ 或微信。希望你能注册一个并加入 TUNA 群组以进行更细致的讨论(加入方式见页面底部)。
  • 不要担心太难/工作量太大,在截止日期前,项目内容都是灵活可更改的。

项目列表

自有项目

下面的项目都从 TUNA 的实际需求而来,目前或者将作为 TUNA 的自有项目开放源码,由 TUNA 和开发者共同维护。

基于对象存储的 rsync 实现

  • 项目描述:当前开源软件镜像站多采用 rsync 协议从上游差异更新,而 rsync 工具只支持 POSIX 文件系统。然而 POSIX 文件系统的大部分功能(如权限管理、目录遍历)对于镜像站是无意义的,反而引入了很多额外开销,降低了性能。目前 CDN 等高性能文件服务都采用对象存储系统(如 AWS S3)作为后端,而不是 POSIX 文件系统,因其访问延迟低,性能几乎不因文件数量增加而下降。若能将 rsync 协议与对象存储结合,实现一个在对象存储上工作的类 rsync 同步工具,那么镜像站就可从 POSIX 文件系统迁移到对象存储系统,从而提供更高质量的服务。项目不要求实现 rsync 的全部功能,只需要将远端文件列表与对象存储中的文件列表对比,下载缺失文件,删除多余文件,并更新修改日期不同的文件即可。
  • 项目难度:
  • LICENSE:GPL v3
  • 项目社区导师:王邈
  • 导师联系方式:miao.wang (at) tuna.tsinghua.edu.cn
  • 合作导师联系方式:朱晟菁 zhsj (at) debian.org
  • 项目产出要求:
    • 类似于 rsync 命令的跨平台文件同步工具
      • 支持 rsync:// 网络协议
      • (可选)支持 rsync over ssh
    • 本地存储是对象存储服务而不是传统的POSIX文件系统
      • 支持多种不同的对象存储后端
        • 基于 HTTP 的后端(可参考或使用相关仓库中的 storage 项目)
        • (可选)原生后端(如 Ceph 提供的 librgw
    • 支持的同步功能
      • 从远端下载本地缺失文件
      • 删除远端没有的多余文件
      • 对比已有文件修改日期和大小,如果不一样则更新
      • exclude文件列表(按照 rsync 工具的通配符格式)
      • --delete-after 等 rsync 更新选项(以保持同步的原子性)
  • 项目技术要求:
    • 熟悉任何一种高性能的编程语言(推荐 C++/Go/Rust 等)
    • 熟悉网络编程与应用协议的实现
    • 能够阅读并理解rsync工具源代码,理解其协议
    • 了解对象存储系统的使用方法(API)
  • 相关的开源软件仓库列表:
    • https://git.samba.org/?p=rsync.git (原版 rsync)
    • https://github.com/tuna/rsync (TUNA 实现的 rsync,缓存元数据在内存中以减少磁盘开销)
    • https://github.com/gilbertchen/acrosync-library (C++ 写的 rsync client,RPL-1.5 License)
    • https://github.com/Xuanwo/storage (一个 Go 的通用对象存储中间件)
    • https://github.com/openbsd/src/tree/master/usr.bin/rsync (OpenBSD 重写的 rsync)
    • https://github.com/sourcefrog/rsyn (Rust 写的 rsync client,WIP 阶段)

TUNA Mirrors服务器的ZFS性能问题调研及调优

  • 项目描述: TUNA Mirrors 是国内外知名的综合型开源与自由软件镜像,其收录软件数量庞大,长久以来持续服务于国内外的学术界及工业界对软件仓库的需求。由于用户需求日益上升,服务器存储系统中的ZFS一直在遭受严峻的挑战,并屡屡触碰性能瓶颈以及各类疑难的性能问题。本项目旨在考察 TUNA Mirrors 的 ZFS 软硬件配置,调研其中存在的各种疑难性能问题及瓶颈,并尽可能给出相应的性能调优建议。性能调优对于提升 TUNA Mirrors 及其姊妹镜像站用户体验而言意义重大。
  • 项目难度:高
  • LICENSE:非开发项目,上游(ZFS)采用 CDDL
  • 项目社区导师:Aron Xu
  • 导师联系方式:aron (at) debian.org
  • 合作导师联系方式:王邈,miao.wang (at) tuna.tsinghua.edu.cn
  • 项目产出要求:
    • 调研TUNA Mirror的ZFS性能瓶颈以及潜在的性能问题。
    • 基于具体的原因分析,给出相应的性能调优解决方案。
  • 项目技术要求:
    • 熟悉linux服务器维护
    • 熟悉C语言,并能够调试linux内核模块
    • 能够考察Illumos(OpenSolaris后继)以及FreeBSD上的ZFS性能
    • 熟悉ZFS
  • 相关的开源软件仓库列表:
    • https://github.com/openzfs/zfs
    • https://www.illumos.org/
  • 注意:本项目不是一个编码性质的项目,并且具有相当高的难度。我们并不要求你能够解决这一问题,即便能够在一个实验环境中复现这一问题,并且找到性能瓶颈,已经是相当好的成果了。如果需要选择本项目,请确保你已经与导师进行了充分的交流,并且完全明确了目标。

开源弹幕系统改进

  • 项目描述:弹幕是常用的听众与讲者的互动手段。TUNA 开发了自己的 C/S 弹幕系统 danmaQ(见下面的仓库),使用于多种场合,也被多个发行版收录。其服务端使用 Python 编写,客户端使用 Qt 编写,基本实现了跨平台。然而,目前该项目缺乏维护,代码比较陈旧,一些功能缺乏(如 Web 弹幕墙)、不完善(如审核)或已经损坏(如微信互联)。此外,清华大学计算机系科协亦有一套自己实现的弹幕系统 Comment9(见下),使用 Node.js 编写。它与 danmaQ 相比,具有一些高级功能(如多个活动、弹幕墙、多路审核、支持硬件弹幕机),但缺乏弹幕属性配置等。我们希望,整合当前两个系统的功能,改进得到一套全功能的开源弹幕系统,覆盖用户需求。
  • 项目难度:高
  • LICENSE:GPL v3
  • 项目社区导师:陈晟祺 (@Harry-Chen on GitHub)
  • 导师联系方式:shengqi.chen (at) tuna.tsinghua.edu.cn
  • 合作导师联系方式:张宇翔,yuxiang.zhang (at) tuna.tsinghua.edu.cn, @z4yx on GitHub
  • 项目产出要求:
    • 总体要求
      • 尽可能保持与当前实现的兼容性
      • 所有代码使用 GPLv3 许可证开源
      • 所有项目均需要中英双语支持
    • 弹幕服务端(建议依旧使用 Python + Flask)
      • 支持独立的多个活动,按需留存记录,能够导出
      • 发布、订阅、审核可以单独设置密码
      • 每个活动分别支持多种接入(至少包括网页、微信、Telegram)
      • 支持多种不同属性的弹幕(颜色、位置、速度)
      • 支持 Web 弹幕墙(用户可通过命令设置头像、昵称等)
      • 具有 Web 版管理后台,支持审核并设置属性(人工置顶等)
      • 具有 HTTP / WebSocket API,能够主动向客户端推送弹幕
      • 保留弹幕机配置功能
      • 有良好的性能表现
      • 配备 Dockerfile,能够简便地部署运行
    • 弹幕客户端(Qt)
      • 支持多显示器,并能够选择弹幕在哪些显示器上工作
      • 在各个系统上均正确支持高分屏(HiDPI)
      • 能够根据服务器推送的弹幕和属性,正确进行绘制
      • (可选)支持故障恢复(自动重连+跳过已经发送的弹幕)
      • 有良好的性能表现
  • 项目技术要求:
    • Qt + Python + Node.js 编程(基本语言、简单GUI、使用网络框架)
    • 网络编程(WebSocket / HTTP 协议)
    • NoSQL 数据库(redis / mongoDB)
    • 简单前端设计(CSS / Javascript)
  • 相关的开源软件仓库列表:
    • https://github.com/tuna/danmaQ
    • https://github.com/tuna/gdanmaku-server
    • https://github.com/Harry-Chen/Comment9
  • 注意:本项目目前意向人数较多

通用镜像站前端框架

  • 项目描述:开源镜像站在呈现文件之外,也需要向用户呈现服务器状态、同步状态、使用帮助等更多的信息。目前,TUNA 镜像站使用了一套 Jekyll 静态生成页面 + AJAX 动态获取信息 + 服务端 njs 渲染结合的方法来向多种平台(现代浏览器、老旧浏览器、文本终端浏览器)提供支持。然而这种方法可维护性略差,也缺少通用性。同时,TUNA 镜像站的前端也硬编码了大量信息,对其他组织的使用造成了一定的不便。我们希望,能够在当前的基础上,对 TUNA 镜像站的前端进行详细设计与重构,形成一套通用的适用于各大开源镜像站的前端框架。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:王邈
  • 导师联系方式:miao.wang (at) tuna.tsinghua.edu.cn
  • 合作导师联系方式:陈晟祺,shengqi.chen (at) tuna.tsinghua.edu.cn, @Harry-Chen on GitHub
  • 项目产出要求:
    • 保留当前已有功能
      • 显示镜像列表、标注,提供使用帮助
      • 显示同步状态、服务器状态
      • 发布新闻公告
      • 响应式设计,并支持暗色模式
      • 支持多种浏览器环境,均能正确显示内容
    • 新增功能
      • 支持国际化(至少加入中英双语切换支持)
      • 提取各种可变字段为配置,增强灵活性
    • 重构功能
      • (讨论中)迁移至 Hugo 等更现代的静态生成器
      • (讨论中)尽量减少非必要 JS / AJAX 的使用,对非 JS 用户保持友好
  • 项目技术要求:
    • 基础前端开发(HTML、JavaScript、CSS)
    • 现代前端基础设施(Bootstrap、jQuery、Vue)
  • 相关的开源软件仓库列表:
    • https://github.com/tuna/mirror-web
  • 注意:本项目目前意向人数较多

开源硬件密钥设备 Web 控制台

  • 项目描述:以 YubiKey 为代表的密钥存储设备深受 geek 们的喜爱,而相关的密码技术也在开源社区中得到了广泛应用(如 GnuPG)。由于 YubiKey 不开源,近年来,开源社区中陆续诞生了一些开源的硬件密钥设备,例如 SoloKey、CanoKey。作为一个新兴的开源硬件密钥设备,CanoKey 提供了与 YubiKey 一致的FIDO2/U2F、PIV、OpenPGP 和 OATH(HOTP、TOTP)的支持。为了向大众普及和推广密码学工具,CanoKey 还提供了 WebUSB 支持,可以在浏览器中直接使用密码学工具。现在,这些工具的开发还处于起步阶段,需要社区支持,让密码学工具变得更加易用。
  • 项目难度:高
  • LICENSE:Apache 2.0
  • 项目社区导师:党凡
  • 导师联系方式:dangfan (at) tsinghua.edu.cn
  • 合作导师联系方式:Zamir Sun,zsun (at) fedoraproject.org
  • 项目产出要求:
    • 运行在 web 上的类似于 YubiKey Management Tool 的工具
      • 查看、管理 OATH(TOTP、HOTP)
      • 导入 FIDO2 私钥和证书
      • (可选)管理 FIDO2 的 resident key
      • 管理 OpenPGP 的基本信息和密钥
      • 管理 PIV 的证书和密钥
  • 项目技术要求:
    • 了解 ISO 7816 协议
    • 熟悉 JavaScript 和 Dart
    • 能够阅读、理解 OpenPGP、PIV 和 FIDO2 的文档
  • 相关的开源软件仓库列表:
    • https://github.com/w3c/webauthn
    • https://github.com/canokeys/canokey-core
    • https://github.com/canokeys/canokey-stm32
    • https://github.com/nfcim/flutter_nfc_kit
    • http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git

跨平台 TOTP、HOTP 移动客户端

  • 项目描述:随着 iOS 13 进一步开放 NFC 功能,Android 和 iOS 系统都具备了 NFC Reader 的能力。TOTP 和 HOTP 是目前不少网站和应用的 2FA 选项之一,无论是 YubiKey、CanoKey 这样的硬件产品,还是装有 OATH 应用的智能卡,都可以通过 NFC 在手机上提供便捷安全的 TOTP 和 HOTP 功能。本项目的目标是利用 NFC 功能,实现一个开源的 TOTP、HOTP 客户端,支持常见的智能卡或类智能卡设备。
  • 项目难度:高
  • LICENSE:Apache 2.0
  • 项目社区导师:党凡
  • 导师联系方式:dangfan (at) tsinghua.edu.cn
  • 合作导师联系方式:Zamir Sun,zsun (at) fedoraproject.org
  • 项目产出要求:
    • 运行在移动设备上的跨平台 OATH 工具(类似于 Google Authenticator)
      • 使用 Flutter 编写
      • 查看验证码
      • 增加新的密钥
  • 项目技术要求:
    • 了解 ISO 7816 协议
    • 熟悉 Flutter 和 Dart
    • 能够阅读、理解 OATH 的文档(RFC 4226、6238等)
  • 相关的开源软件仓库列表:
    • https://github.com/nfcim/flutter_nfc_kit

跨平台 NFC 信息读取移动应用开发

  • 项目描述:目前,各类移动设备,包括 Android 与 iOS,都增加了对 NFC 通信的支持;但各类应用对于 NFC 的支持都很不完善,缺少一个统一的跨平台的支持库。同时,关于 NFC 各类标准的文档也并不齐全,通常需要到处查找,为开发者造成了很大的障碍。前期,我们在 Android 平台上是实现了一个 NFC 卡片的读取应用 NFSee;目前,需要将其使用 Flutter 重写以实现跨平台。同时,也将搭建一个公开的 Wiki 网站,对 NFC 相关的协议、标准进行整理和阐述,以纠正常见误区,帮助其他开发者更好地在移动端进行 NFC 相关的开发。
  • 项目难度:高
  • LICENSE:MIT
  • 项目社区导师:党凡
  • 导师联系方式:dangfan (at) tsinghua.edu.cn
  • 合作导师联系方式:陈晟祺,shengqi.chen (at) tuna.tsinghua.edu.cn, @Harry-Chen on GitHub
  • 项目产出要求:
    • 使用 Dart 实现一个 NDEF 协议数据格式的支持库,并开源发布
      • 支持对所有标准类型的数据进行解析和生成
    • Flutter NFC 支持库 flutter_nfc_kit
      • 添加 NDEF 协议的支持,可读写标准的 NDEF 数据
        • iOS 需进行不同协议底层的兼容实现,非直接调用接口
    • Flutter 开发的 NFC 读取应用 NFSee
      • 添加对更多类型卡片的支持
      • 添加对 NDEF 标签的读写支持、数据呈现
    • 开放文档 NFC Wiki
      • 对现有 NFC 标准与规范进行充分、完整的归纳
      • 整理各类卡片的读取方式
      • 整理易错概念和开发注意点
  • 项目技术要求:
    • Flutter 应用开发
    • Android / iOS 原生应用开发
    • NFC 通信协议开发(可提供设备与卡片)
  • 相关的开源软件仓库列表:
    • https://github.com/nfcim/flutter_nfc_kit
    • https://github.com/nfcim/nfsee
    • https://wiki.nfc.im/

SCIM Qt5 移植

  • 项目描述:SCIM 历史悠久的输入法框架,早期为 GNU/Linux 系统的中文本土化立下了汗马功劳,然而近年来 SCIM 的开发团队已经不再活跃,开发停滞,项目处于维护状态。当前 SCIM 依旧可以在各大发行版上顺畅使用,唯一缺失的功能是对 Qt5 的支持。本项目计划把 SCIM 移植到 Qt5。
  • 项目难度:高
  • LICENSE:LGPL v2.1
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求
    • 运行于 Qt5 的 SCIM
    • 修复 bugs.debian.org 上的其它 SCIM bug
  • 所需知识和技能
    • 有 SCIM 使用经验
    • C++ 编程能力
    • Qt编程经验
  • 相关的开源软件仓库列表
    • SCIM: https://github.com/scim-im/scim/
    • Debian SCIM 包: https://packages.qa.debian.org/s/scim.html
  • 说明:本项目由于上游已经不再活跃,社区计划 fork 并接手这一项目,因此作为社区自有项目发布。

上游项目

下面的项目非 TUNA 维护,由 TUNA 成员和相应的上游社区成员(可能为同一人)共同担任导师。项目成果将以 Pull Request 的形式回馈给上游项目。

将 xgboost 与 prophet 等数据科学软件库集成到 Debian GNU/Linux

  • 项目描述:xgboost (梯度提升),prophet (时间序列预测)以及 Stan (高性能统计建模),pytorch (深度学习)等是重要的数据科学软件。Debian 作为用户基数庞大的 Linux 发行版之一,用户群中不乏数据科学用户群体,而上述软件尚未集成到该系统中,或者缺乏一部分计算性能相关的依赖库。为帮助用户获得更佳使用体验,方便安装及部署,该项目旨在为 Debian 官方仓库引入这些软件及其对应的依赖库,并将仓库中已有的依赖更新到理想状态。
  • 项目难度:高
  • LICENSE:Apache 2.0 / BSD-3-clause(双重授权)
  • 项目社区导师:Aron Xu
  • 导师联系方式:aron@debian.org
  • 项目产出要求:
    • 鉴于 Xgboost 等库被广泛应用于各类项目中,完成的集成工作需要附加测试代码以确保可以持续性地测试这些库的可用性及正确性。
    • 如果上游软件存在阻碍集成的 bug,则需要修复并向上游提供 PR。
    • 完成任务描述中提及软件及其一系列依赖库的集成工作,并上传到官方仓库。
  • 项目技术要求:
    • 丰富的 Linux 系统使用/维护经验
    • 丰富的 apt/dpkg 使用经验
    • 熟悉至少一种脚本编程语言,能够编写基本的 Makefile
    • 具有一定数学及数据科学背景
  • 相关的开源软件仓库列表
    • https://facebook.github.io/prophet/
    • https://github.com/dmlc/xgboost
    • https://github.com/stan-dev/cmdstan
    • https://github.com/stan-dev/math
    • https://github.com/stan-dev/stan
    • https://github.com/stan-dev/cmdstanpy
    • https://github.com/stan-dev/rstan
    • https://github.com/stan-dev/pystan
    • https://github.com/dmlc/rabit
    • https://github.com/pytorch/FBGEMM
    • https://github.com/pytorch/pytorch
    • https://github.com/pytorch/text
    • https://github.com/pytorch/audio
    • https://github.com/pytorch/tensorpipe
    • https://github.com/intel/ideep

Gentoo R_Overlay 升级

  • 项目描述:Gentoo R Overlay是一个读取 CRAN 和 BIOC 仓库,并自动生成 Gentoo ebuild 组成 portage overlay 的项目。从2013年至今,一直为 Gentoo 的统计学、生物学和物理学领域的科学家提供服务。本项目将针对 Gentoo R Overlay 的现状和用户需求,对其进行升级。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求
    • 将 R_Overlay 移植到 Python 3.8
    • 实现旧 ebuild 的清理机制
    • 完善 R Overlay 的使用文档
  • 所需知识和技能
    • 有 Gentoo 使用经验
    • 有系统管理经验
    • 熟练使用 Git
    • 有R使用经验,Python 编程能力。
  • 相关的开源软件仓库列表
    • R_Overlay: https://github.com/dywisor/roverlay
    • Gentoo R Overlay: https://wiki.gentoo.org/wiki/Project:Science/Overlay/R
    • Gentoo Science Project: https://wiki.gentoo.org/wiki/Project:Science

Gentoo PyPI ebuild 生成器

  • 项目描述:在 Gentoo 上使用 PyPI 包一种做法是先把 PyPI 的软件打包成 Gentoo 的 ebuild,其缺点是更新需要由人工完成,效率较低。另一种做法是使用 PyPI 的 pip 来绕过 Gentoo 的包管理系统 portage 直接安装,其缺点是容易与 portage 冲突,导致 Python 子系统的混乱。本项目计划采两家之长,通过一个 PyPI ebuild 生成器自动生成一个 PyPI 的 portage overlay,为 Gentoo 用户提供最新 Python 软件仓库。项目可以借鉴现已无人维护的 gs-pypi 代码。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求
    • 自动生成并持续更新的 Gentoo PyPI Overlay。
  • 所需知识和技能
    • 有 Gentoo 使用经验
    • 有系统管理经验
    • 熟练使用 Git。
  • 相关的开源软件仓库列表
    • GS PyPI: https://github.com/jauhien/gs-pypi
    • Gentoo Python Project: https://wiki.gentoo.org/wiki/Project:Python

Gentoo Android App

  • 项目描述:Gentoo on Android 可以在 Android 上运行 Gentoo Prefix,实现无性能损耗的完整的 GNU 环境。然而,当前的 Gentoo on Android 一方面需要 root 权限,另一方面需要手动安装,亟需一个不需 root 的 Android App 完成安装,更方便地把手机转换成开发和生产工具。在 Android 的系统中,每个 App 有一个专有的用户 uid 和一个保留的空间存放数据,适合嵌入一个这个 uid 下的 Gentoo Prefix 实例,解决当前 Gentoo on Android 的两个问题。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:许朋程
  • 导师联系方式:i (at) jsteward.moe
  • 合作导师联系方式:
    • 续本达,heroxbd (at) gentoo.org
    • 陈晟祺,shengqi.chen (at) tuna.tsinghua.edu.cn
  • 项目产出要求
    • 自由开源的 Gentoo Android App。
  • 所需知识和技能
    • 有 Android App 开发能力
    • 有 Gentoo 使用经验
    • 熟练使用 Git
  • 相关的开源软件仓库列表
    • Gentoo on Android: https://wiki.gentoo.org/wiki/Project:Android
    • Nix on Android: https://f-droid.org/en/packages/com.termux.nix

Gentoo ROCm HIP GPGPU 方案

  • 项目描述:ROCm 是 AMD 显卡的自由开源的科学计算系统,HIP 是 ROCm 的 CUDA 兼容层,提供类似于 CUDA 的 API。然而 ROCm 和 HIP 的文档校为缺乏,除了官方指定的个别平台之外,安装和部署较为困难。Gentoo Linux 是一个元发行版,具有高度的可定制性,是各发行版中进行科学计算相关开发的良好选择。当前,Gentoo 中的 ROCm 相关的软件包已经成熟,但是 HIP 及与之相关的 rocBLAS 等高级库尚未完成,依旧有许多难点。本项目将完成 Gentoo 的 HIP 软件包,并为 PyTorch, Tensorflow 提供 AMD 设备上的进行方案。完成发行版上开源 GPGPU 框架的布局。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求:
    • Gentoo 的 HIP 软件包
    • PyTorch-ROCm 软件包
    • Tensorflow-ROCm 软件包。
  • 所需知识和技能:
    • Linux 系统运维、使用与调试
    • Gentoo portage/ebuild 理解和写作能力
    • shell 编程能力
    • 熟练使用 Git
  • 相关的开源软件仓库列表
    • ROCm: https://github.com/RadeonOpenCompute/ROCm
    • Gentoo Portage 软件仓库: https://gitweb.gentoo.org/repo/gentoo.git

Emacs Jupyter client

  • 项目描述:Emacs 是久负盛名的编辑器,以其高度的可编程扩展性闻名于世。Jupyter 是基于 HTTP 的远程异步运行系统,在科学计算有广泛的应用。EIN 项目为 Emacs 提供 Jupyter 客户端,可以弥补 Jupyter 网页上输入功能薄弱的劣势,把 Emacs 的强大编辑功能与 Jupyter 异步执行功能有机结合,成为 literate programming 的最强方案之一。但是,EIN使用的 HTTP 框架由基于 callback 的异步编程框架,维护较为困难,本项目将使用 coroutine 的函数式编程模型重写 EIN,完成现代的 Emacs Jupyter 客户端。
  • 项目难度:高
  • LICENSE:GPL v2
  • 项目社区导师:续本达
  • 导师联系方式:heroxbd (at) gentoo.org
  • 项目产出要求
    • 使用函数式 coroutine 重写 EIN 的异步模块,提升 EIN 的稳定性。
  • 所需知识和技能
    • Emacs 的使用经验,Emacs LISP 编程经验,熟练使用 Git
  • 相关的开源软件仓库列表
    • EIN – emacs-ipython-notebook: https://github.com/millejoh/emacs-ipython-notebook

[Read More]

开学前“小聚”

Sep 8, 2018. | By: Xavier Yao

临近开学的一个周末,我们回到了久违多年的盒子咖啡馆,举办了一场自由讨论的 tunight-lite。说是“小聚”,结果来了20多位同学,差点把咖啡馆挤爆2333。事实表明 Geek 们也是需要 social 的XD。

[Read More]

TUNA 成员参加 LC3 China 会议

Jun 25, 2018. | By: Yuxiang Zhang

六月末,由Linux基金会主办的 LC3(LinuxCon + ContainerCon + CloudOpen)中国会议,在奥利匹克公园旁的国家会议中心如期召开。会议为期三日,正好赶上清华考试周,因此 TUNA 仅有少数咸鱼成员参加了会议。会上我们见到了专程从重庆赶来参会的几位开源工场的小伙伴,并进行了亲切友好的交流。

[Read More]

2017-18 春季学期金枪鱼之夜安排

Feb 19, 2018. | By: Xavier Yao & Harry Chen

金枪鱼之夜,英文名为 Tunight,是面向 TUNA 协会成员的小型技术交流沙龙。该系列活动于 2014 年秋季学期发起,以大约每周一次的频率维持至今。活动通常围绕某一话题,以讲授、答疑、交流、实践的形式展开。金枪鱼之夜自 2015 年秋季学期起,提供活动录音 Podcast;2016 年起,在 TUNA 直播间视频直播。欢迎校内外志同道合的同学报名演讲。

[Read More]

Debian Stretch Release Party 活动记录

Jun 17, 2017. | By: Xavier Yao

 进入考试周,北京高温黄色预警信号持续多天,最高气温38℃。高温的天气让等待新版本发布的人们内心更加的躁动。2017 年 6 月 17 日下午两点,TUNA 协会联合 USTCLUG 的 Yang Boyuan 同学以及北京 GNU/Linux 用户组在李兆基科技大楼举办了 Debian Stretch Release Party。

[Read More]

2016-17 春季学期往期金枪鱼之夜

Feb 5, 2017. | By: Xavier Yao & Jason Lau

提供 2017 春季学期各金枪鱼之夜音、视频及讲稿下载。

[Read More]

2016 秋季新成员欢迎会

Oct 7, 2016. | By: Xavier Yao

2016 年国庆假期的最后一天,寒冷的天气挡不住大家参加 TUNA 活动的热情。在某世界一流隔壁大学大名鼎鼎的真维斯楼,TUNA 举行了秋季学期新成员见面会。本次百团招新,在全新设计的注册网站和全新制作的贴纸和易拉宝的助攻下,我们招到新成员的人数和往年差不多,依然是50个左右……黑线

[Read More]

2016 网络安全科普日

May 16, 2016. | By: Justin Wong

又是一年春夏之交,安全是这个时节的主题。2016 年 5 月 15 日下午两点,科普讲座——网络安全科普日·物联网时代的安全威胁,在 清华五教 5105 准时开场。

[Read More]

RHEL/CentOS 7 安装LXC

May 1, 2016. | By: Justin Wong

最近 TUNA 新增了一台跑着 RHEL7 的服务器,之前我们用的都是 Debian,虽然早年也接触过 CentOS,但是对 RH 系的生态系统还是不太熟练。这篇文章也算是 对头一次在 RHEL7 上折腾的一个备忘。

[Read More]

2015 软件自由日清华站活动报告

Sep 19, 2015. | By: Justin Wong

金秋送爽,艳阳高照,2015 年 9 月 19 日下午两点,2015软件自由日清华站在清华大学新水利馆欢乐开场。本次活动 由 TUNA 协会和北京 GNU/Linux 用户组联合举办,且得到了 Ubuntu 社区、Fedora 社区、openSUSE 社区、Firefox 社区、 阿里移动安全和七牛云存储等赞助方的大力支持,赞助方为此次活动提供了非常丰厚的礼品。

礼品一瞥

[Read More]

活动记录: TeX 与汉字处理

May 15, 2015. | By: Justin Wong

5 月的北京,夜晚的阵阵清风吹过宁静清华园,空气中飘荡着初夏的味道,这是发布新版本的季节!

2015 年 5 月 21 日,TUNA 协会邀请到了 pTex-ng 的作者 马起园(李阿玲)、 中文 TeX 文档类/宏包 CTeX-kit 的开发者 刘海洋 还有 TUNA 协会成员,ThuThesis 维护者 赵涛(Alick Zhao) 等人, 共同分享 TeX 与汉字处理的技术与应用,还有 pTeX-ng、CTeX 2.0、最新版 ThuThesis 特性的演示。

[Read More]

鸟哥的 Linux 私房会

Mar 29, 2015. | By: Justin Wong

2015 年 3 月 29 日,沙尘退去,阳光明媚,春暖花开。众多 GNU/Linux 爱好者的启蒙人, 《鸟哥的 Linux 私房菜》作者 鸟哥·蔡德明 来到清华大学,在三教 3201 与同学们见面。

上午 10 点,来自 openSUSE 社区的 Sunny,Max 和 鸟哥 一同到达会场,活动如期开始。

[Read More]

openSUSE 13.2 Release Party 活动记录

Nov 16, 2014. | By: Justin Wong

2014 年 11 月 16 日,openSUSE 13.2 Release Party 清华站如期在中央主楼报告厅举办, 本次活动由 openSUSE 社区发起,TUNA 协会协办,SUSE 公司提供了礼品等各项资金支持。

活动中我们又见到了很多熟悉的面孔,绝对中立的 openSUSE 吸引到了来自北京各个开源社区同僚前来欢聚。

下午两点,来自 TUNA 的 Justin Wong 宣布活动开始,本次活动的主题是「做一只安静的蜥蜴」,openSUSE 作为一个 由社区驱动写作开发的自由的 Linux 发行版,深受广大自由开源软件爱好者的喜爱,「安静」二字也很符合 openSUSE 与世无争,默默贡献的特质。

[Read More]

2014 秋季新成员欢迎会

Nov 1, 2014. | By: Justin Wong

2014 年 11 月 1 日,TUNA 那举行了创会以来首次新成员欢迎会,在本次活动中,除了新入会的同学, 还有不少知其名而不知其面的同学和幽灵会员参与。

最近上线的 gdanmaku 服务为本次活动带来了弹幕支持,害羞说话的同学们即可通过弹幕参与互动,活动在轻松快乐的气氛中开始。

[Read More]

2014 软件自由日清华站活动报告

Oct 3, 2014. | By: Justin Wong

2014年9月27日下午两点,清华大学TUNA协会在中央主楼二层网络中心报告厅举行了软件自由日庆祝活动,除了TUNA成员和清华同学外, 还有来自BJGUG, BLUG, GitCafe 和 CSDN 的小伙伴一同参加了活动。 由于本学期清华开学较晚,活动时间比正常时间推迟了一周。

此次软件自由日包括4个话题:

  • CSDN CODE: 为开源而生(王殿进)
  • Arch Linux: 生命在于运动(汪彧之)
  • 台湾自由开源社区组织经验(林旅强)
  • AngularJS Workshop(Martin)

[Read More]

2014 硬件自由日清华站活动报告

Aug 30, 2014. | By: Alick Zhao

2014 年 3 月 15 日,春季学期开学后不久的一个周六,清华大学 TUNA 协会在五教 5102 主办了硬件自由日清华站的活动。 活动有超过 70 人参加。此次活动的主题为“让软件工程师硬起来”。

下午一点时分组织者和一些观众陆续到场。活动注册沿用电子注册方式,每个人在注册电脑上的 LibreOffice 表格中填写各自的信息,这个表格会转换为 csv 格式, 被最后幸运抽奖的程序读取使用。本次活动启用了微博墙实时互动,现场第二块投影幕布由 scateu 提供。

[Read More]

FUDCon APAC 2014 Report

Aug 30, 2014. | By: Alick Zhao

Note: This is a press style report of FUDCon APAC 2014, which summarizes the event highlights. Don’t miss the links to slides, videos, and photos!

FUDCon APAC 2014 was successfully held at Conference Center at New Main Building of Beihang University, Beijing, China during May 23 to 25, 2014. This year the event was held together with GNOME.Asia Summit, an annual conference for GNOME users and developers in Asia. It turns out to be a rather exciting experience of mutually beneficial cooperation of free and open source communities. In total, GNOME.Asia and FUDCon APAC 2014 attracted more than 500 registrants, and among them over 300 attended the event.

[Read More]

2013 软件自由日清华站活动报告

Sep 25, 2013. | By: Alick Zhao

上周六(9 月 21 日)北京天气晴好,由清华大学学生网管会 (TUNA) 主办,并由北京 GNOME 用户组 (BJGUG) 协办的自由软件日清华站活动顺利举行。活动有超过 60 人参加。接近下午两点时开始现场注册,这次活动的注册为电子注册,每个人在注册电脑上的 LibreOffice 表格中填写各自的信息,这个表格会被最后幸运抽奖的程序直接读取。我们准备了光盘、贴纸与宣传海报,注册后每人都可以领取。

[Read More]

清华大学 TUNA 协会原名清华大学学生网管会,注册名清华大学学生网络与开源软件协会,是由清华大学网络技术和开源软件爱好者、技术宅组成的团体。现阶段向校内外提供开源软件镜像等服务。

The best team on the planet.

rss angle-right envelope telegram hashtag github flickr weibo