只要在第一次验证后, 让服务器发一个自己的token, 后面就可以使用这个token来获取数据。实在不行可以把这个功能做成可选的 -- 即一次验证(也可手动重新验证, 老的将失效) + 功能可选

sunrisepeak
-
某小项目关于账号验证的问题... -
如果你的开源软件被人分发,应该如何应对 -
如果你的开源软件被人分发,应该如何应对一般来说, GPL协议可以避免, 被人商业化的同时还把修改部分进行闭源
-
如果你的开源软件被人分发,应该如何应对如果作者不愿意维护Safari版本. 在明确的告诉用户软件版权信息及改动, 以及符合基于版本的协议下, 有人fork维护Safari版本并进行收费也算正常
即是BewlyBewly-AveMujica改成AGPL-3.0只要fork的版本把修改的部分开源, 依然可以这样做
这里其时BewlyBewly-AveMujica的直接变动协议也是不符合规范的, 应该要保留 https://github.com/BewlyBewly/BewlyBewly/blob/main/LICENSE 原MIT协议的信息, 然后再进行追加, 而不应该直接替换 (但有可能fork的作者在这一块不够了解, 一般这种情况 友好的沟通一下 进行修改即可
作者如果不期望其他人用于商业化, 可以用双协议来进行约束, 并且自己也可以推出官方付费版本(参考jetbrains IDEA社区版本和商业版 以及 基于社区分支的AndroidStudio)
很多时候不管是用户还是开发者不小心违反开源协议是非主观有意而为之的, 这种情况下交流沟通一下即可, 对于有意违反的可以发声明进行谴责, 或起诉
-
如果你的开源软件被人分发,应该如何应对一般情况
- 一般没有二次修改开源软件的话, 任何人都可以分发的, 但是要标识该软件的开源协议及版本信息
- 如果在开源软件上有修改的话, 分发时候需要根据开源协议情况
- GPL等协议: 修改部分必须开源
- MIT/Apache-2.0: 修改部分可以不开源
- 修改部分追加个人版本/权信息(不能与原协议冲突), 不能删除原开源协议及版本/权信息
Q1: 个人源、社区Linux、商业Linux 搬运了你的软件,是不是和挪用、商用的没什么区别
A1: 通常不能自由分发和在符合开源协议下进行商业活动的软件 - 不符合开源软件标准(OSI)
- 参考OSI开源定义: https://opensource.org/osd
Q2: 在b站上时不时刷到开源软件被人挪用,作者发视频、甚至删库的情况
A2: 有部分人, 通过在应用商店上架开源软件进行获利, 但却使用了个人信息作为开发者,可能违反了如下协议内容
- 1.刻意修改版权信息, 造成了侵权
- 2.部分GPL软件上二次开发的内容没有开源, 违反了GPL协议
Q3: 如果搬运者的patch不被上游接受,下游的patch是否保留,保留多久
A3: 完全可以保留, 这种相当于是基于原开发版本fork出来的一个分支, 但一般需要注意以下问题:
- 1.如果原软件为GPL协议, 修改的Patch需要开源
- 2.软件分发时, 需要明确附上原软件信息以及修改的Patch信息(避免用户造成误解/也避免违反协议
-
d2ds动画: 二维数组内部布局与局部性原理 - 动画代码 -
TechTalks: Android系统真的要闭源了? -- AOSP项目政策(可能)变化解读@blogkj 1.4和2.3里大概分析了以下, Google的透露出来的说法是, 认为外部开发者的贡献的改动带来的维护成本, 可能反而还影响了开发进度和提高了开发成本。所以, 基本后面Google对于AOSP社区的策略基本只做代码发布/展示的功能, 而不会去发展社区在AOSP项目的影响力, 更多以公司视角做TOB的事情, 基本放弃社区推动项目发展的想法
- aosp: 以公司为主推动项目的发展, 外部开发者后面基本很难参与
- linux: 以社区为主推动项目发展, 所有个人和组织都要以社区里的角色进行参与
大概就是这种的差异
-
TechTalks: Android系统真的要闭源了? -- AOSP项目政策(可能)变化解读最近几天可以刷到一些 Google宣布停止Android开源项目的新闻, 不经让人产生以下疑惑:
- 谷歌真的打算闭源Android?
- 原始的报道出处是哪里?
- 实际的情况和影响是什么?
- 谷歌为什么要这么做?
下面以原始报道的内容结合自己曾经给AOSP项目贡献代码的经历和认识, 来解读一下未来AOSP开源政策可能的变化和影响
一、报道内容
1.1 原始报道
通过搜索可以发现相关报道是来自一个叫Android Authority这个媒体, 发布了相关内容。并且Android OS fully in private的字样非常适合内容传播。
1.2 是否真的要闭源?
Android开源项目(AOSP)不会闭源, 但很多组件和功能的开发过程会转到Google内部分支开发, 到发布正式版本的时候才会把代码同步到社区分支
1.3 影响
对于用户、应用开发者、手机厂商基本没有影响, 但是对一些基于AOSP的社区操作系统lineageos和个人操作系统开发/爱好者会有一些影响
1.4 Google的理由
一直一来Google都是有一个内部分支的, 但是如果每笔代码改动都要同步到社区, 就导致了Google员工大量的时间花到了解决冲突上
二、内容解读
2.1 相对开放程度降低
以前Google在开发下一个版本, 会把很多修改的代码合并到社区分支中。这意味着, 每一个次代码的改动我们都能看到(如下图Gerrit记录)。 但后面新版本的开发过程转到内部后, 社区开发者将看不到这个开发的过程, 只有等正式发布的时候才能看到释放出来的代码
举个例子, 一个艺术家手工雕刻作品的时候, 大家可以在旁边全程看它的手法, 甚至提一提建议或者参与共创。因为一些原因, 他决定以后不公开雕刻过程, 最终完成的时候才会把作品拿出来展示, 但其保证大家依然是可以免费欣赏/使用
Gerrit: https://android-review.googlesource.com/q/status:open+-is:wip
2.2 对于不同方的影响
用户和应用开发者
市面上也没有厂商发布基于下个版本的产品。所以, 对于用户和应用开发者来说, 基本不需要提前知道下一个版本的改动也就基本感受不到什么影响
手机厂商
因为以前Google就是分内部分支和社区分支, 对于有合作的手机厂商一直都是可以提前6个月到1年的时候拿到下一个版本的完整的代码, 且Google会给厂商单独建一个分支进行维护更新。所以, 不会对合作厂商有什么影响(反而可能会有优势)
非合作厂商/社区OS/个人系统开发者
可能会影响非合作厂商/社区OS/个人开发者等获取下一代系统发展动向的敏感度, 不利于个人开发者的学习和降低社区参与度。 像lineageos这样社区和一些小厂商的ROM定制很难获得最新的代码。即在最新功能的使用上, 相对合作厂商可能要落后 半年到一年, 进而影响产品在市场上的竞争力
AOSP社区
社区开发者将无法参与下一代系统的开发, 甚至没法提出任何的建议。项目发展完全由Google内部进行驱动, 社区在项目上的影响逐渐变小
在下面这个网站可以在线浏览已经发布的安卓开源项目(AOSP)的代码: https://cs.android.com/android/platform/superproject/main
2.3 可能的原因
优化开发流程, 降本增效
每次修改都同步到社区, 很容易造成分支冲突, 提高了开发成本。通过把所有的修改延迟到发布时统一同步, 可以把多次解决冲突的时间压缩成一次, 实现将本增效的效果
提高合作伙伴模式的收益
通过把开发过程放到内部, 这样合作厂商不仅能有Google开发人员的技术支持, 还相对能更早获取系统的最新功能。提高了厂商和Google合作模式的价值, 甚至头部厂商为了产品竞争力, 和Google进行合作变成了必要条件, 不然就可以要落后合作厂商一代(总结, 这样厂商会更愿意交钱)
三、总结
Android在开源上的做法一直有一些争议, 包括把一些功能从AOSP转移到Google服务闭源做商业化, 以及主动在底层设计HAL层来迎合芯片厂商上移驱动实现到用户态规避Linux内核GPL开源协议的影响, 以及现在可能要把开发过程完全私有化, 进一步减弱了AOSP的开放性。种种做法也确实能看出Google对AOSP项目开放性的收紧, 但它目前依然是以Apache-2.0协议进行可免费商用的形式进行开源的项目, 说Google要闭源Android是不合适的。
所以, 更准确的形容是: Google主导下的安卓(AOSP)依然是一个开源且能免费商用的项目, 但是开放程度相对降低了, 可能不利于社区发展(也有可能Google也不想社区有什么发展[逃])
注: 以上解读是基于这篇AndroidAuthority的报道, 后续具体要关注Google公布的政策细节
Ref
-
C 0x01(C语言是如何进行函数调用的)PC寄存器基本都是有限制的, 一般可以通过间接的方式修改。而且它一般指一个逻辑上的寄存器, 可能每个架构下实现和名字有所不同。总之, 感觉记住它是存储CPU下一条要执行的指令(在机器语言中)的内存地址就可以了
架构 PC 名称 可否直接读取 可否直接写入 位数 x86 EIP
间接 32 x86_64 RIP
间接 64 ARM32 R15
/PC
32 ARM64 PC
️ 限制
64 RISC-V pc
(模拟器)
️ 部分支持
32/64 MIPS PC
32 PowerPC NIP
(特权)
32/64
-
Linux & Win 游戏性能随手记录显卡驱动的版本会不会影响很大? 按理游戏厂商应该会重点优化win平台才对
-
动手学数据结构项目已经适配d2x工具 - 更简单的本地环境搭建和使用原项目: https://github.com/Sunrisepeak/d2ds
动手写数据结构 | d2ds - WIP
Dive into Data Structures - 强调动手实践的数据结构学习项目,其中包含在线书籍、公开课、练习代码等子项目
主页 - 论坛 d2ds-book - d2ds-video - d2ds-code - dstruct
目标
- 1. 任何人都可以在网上免费获取
- 2. 不仅强调原理, 更强调动手实践
- 3. 自动化的代码练习系统, 让使用者轻松从零实现一个数据结构
- 4. 强调共建共享, 让更多的人加入d2ds社区, 快速迭代和提升内容
- 5. 提供社区成员用于代码分享、技术交流、的论坛和群组
快速开始
通过使用xlings下载项目并运行编译器驱动开发模式(自动化检测)来进行代码练习
注: xlings包含所需的xim和d2x工具 -> 详情
获取项目&配置环境
下载d2ds项目到当前目录并自动配置本地环境
xim -i d2x::d2ds
基本用法
使用d2x命令查看电子书或进行代码练习
打开电子书/项目文档
d2x book
进入代码练习自动检测程序
d2x checker
社区 | 交流
- 即时交流(QQ群): 167535744
- 问题交流&讨论: d2ds论坛版块
- Bug反馈&功能改善: github-issues
参与项目 | 社区贡献
- 参与社区交流: 反馈问题、参与社区问题讨论
- 参与项目维护和开发: 参与社区中问题处理、修复Bug、开发&优化新功能/模块
- d2ds的学习分享: 对d2ds中的一些内容做技术解读, 丰富知识库, 以至于帮助到更多同学
-
析构函数为何会调用@CS-liujf 这里T2推导的应该是B类型
-
把xlings中的公开课相关命令集成到d2x工具中 - PR: d2x base -
為甚麼我不能輸入xling的指令:(。| 报错 main: error - cannot exec(git clone https...这个问题应该是本地没有git导致的。目前已经修复, 在安装脚本中已经加上了git的检测和安装
commit: https://github.com/d2learn/xlings/commit/e08d66ad961085e915df8657f3c131b6f766034c
-
深色主题推荐一个开源浏览器插件, 效果不错。后面研究研究看能不能直接集成到论坛上
-
windows安装xlings失败, 被Windows Defender直接删除问题解决方法微软社区的方法: https://answers.microsoft.com/zh-hans/windows/forum/all/如何解决/4042fa73-1341-4a5d-a91f-0233db9f0c9e
直接关闭Windows Defender的实时检查
-
Forum Guide - A Community Forum Oriented Towards [Knowledge/Technology, Projects, Open Courses, Creative Ideas, etc. + Open-Source Philosophy]Introduction and Background
A community forum oriented towards [knowledge/technology, projects, open courses, creative ideas, etc. + open-source philosophy].
Why build such a forum?
-
- Many platforms are moving towards being comprehensive and entertainment-focused, leading to a massive increase in content volume but a decrease in the density of specific thematic content.
-
- There are relatively few forums related to open source in Chinese platforms, with content scattered across various platforms, lacking a common platform for exchange and sharing.
-
- Provide a platform for discussing topics related to open-source philosophy | open-source licenses | open-source projects | open-source communities | open-source and business | sustainable development of open-source, etc.
Main Sections and Topics
- Posts without a specific topic section are generally posted here.
- Post content and discussions related to various open courses.
- Developers of courses/tutorial projects can create corresponding discussion sections.
- Discussions on topics related to open-source software | open-source communities | open-source philosophy | open-source and business | sustainable development of open-source.
- Developers of open-source projects can create discussion sections for their projects.
- Explorations of open-source content by the d2learn community/open-source group.
Forum Feedback & Community Building
- Feedback on forum-related issues and suggestions.
- Discussions on topics related to the sustainable development of the forum.
Functional Perspective
- A platform for open-source enthusiasts to exchange and discuss.
- Developers of open-source projects/open courses and tutorials can create discussion/exchange sections for their projects.
- A platform for discussing topics related to open-source itself (e.g., sustainable development of open-source projects).
- Others.
Forum Philosophy and Restrictions
Philosophy and Orientation
- Focus on technology, knowledge, creativity, and open-source fields, avoiding entertainment.
- Professional content and rational discussions, avoiding deliberately emotional content.
Forum Code of Conduct
Encouraged behaviors
- Use inclusive language.
- Respect different viewpoints and experiences.
- Gracefully accept constructive criticism.
Prohibited/Restricted
- Provocative, insulting/derogatory comments, and personal attacks.
Registration and Section Creation
Registration Methods
- GitHub: Directly use GitHub for SSO single sign-on.
- Email invitation registration: Users who have already registered and completed email verification can invite others to register via the user interface.
Personal Blogs and Subsection Creation
Others
- https://d2learn.org
- https://github.com/d2learn
- Instant communication group (Q): 167535744
Note: translate by ai-llm - original
-
-
如果创建一个新的社区版块?@sunrisepeak 可以直接进行回复
-
在STM32启动文件中加入版本号@sky-littlestar 这个确实比较火 但具体没有研究过。不知道是用一些小模型放到本地 还是直接用大模块api。好像字节有个相关的 AI玩具之类的产品在试水
-
在STM32启动文件中加入版本号@sky-littlestar OTA固件下载是和实际app分开的, OTA固件本身应该只能通过手动升级吧 还是说也能OTA呢 或者 一般app和ota程序都统一视为 app 方式的进行升级更新