独书先生 Menu

All items for 8月, 2023

国产 CEC-IDE 明牌换皮开源项目 VSCode 宣称自主研发

背景

最近,我看到群里都在传全新推出的“自主研发”工具:CEC-IDE。

那么,什么是 CEC-IDE?

根据公开报道,CEC-IDE 是由数字广东公司与麒麟软件联合打造的,是国内首个适配国产操作系统、自主创新的一款安全、专业且功能强大的集成开发环境。

CEC-IDE主页

CEC-IDE 旨在成为数字政府创新应用的孵化器和技术管理的核心枢纽。作为此使命的体现,该工具以自主研发为基础,提供适用于多种主流编程语言的开发环境,成为国内首个支持麒麟、统信、Windows、Mac OS 等多种操作系统的集成开发环境。

CEC-IDE 不仅提供代码编写、智能辅助、编译调试、版本控制等功能,还构建了一个自有插件市场。超过 1600 种技术插件服务以及一系列数字政府公共服务能力插件,都汇聚于此,从而显著提高研发效率。
CEC-IDE 插件市场

插件市场:https://cecide.digitalgd.com.cn/monorepo/app-front/superMarket

主要特点

快速工程搭建: 提供 Java/JavaScript/Python/C++/Go 等工程创建脚手架和模板,协助用户高效启动新项目。

智能编码辅助: 支持主流开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和代码颜色区分等功能,有力地提升了开发人员的工作效率。

内建代码存储库: 支持私有化代码存储,提供代码托管、代码审查、代码分支管理等服务,全面保障数字政府代码资产的安全。

知识库支持: 提供从前端、后端到运维、测试等全流程研发的知识分享、技术心得、在线学习支持。

优势

安全可信: 作为国有企业品牌,CEC-IDE 以自主研发为基础,其品质值得信赖。工具确保数据本地存储、插件安全认证,从而保障开发成果的安全。

政务增效: 提供数字政府公共服务支持的开发插件,方便开发者随时调用,为数字政府的建设提供有力支撑。

多端适配: CEC-IDE 提供多语言的开发环境,与国产操作系统以及各种终端兼容,为国内软件开发者提供全方位支持。

灵活扩展: 丰富多样的插件资源,同时兼容 vscode 插件;集成 springboot 项目向导,插件一键安装,使开发变得更加便捷。

体验

深入了解这款应用的简介:

应用简介图

然而,困惑的是,这款工具的版权信息居然还是微软的!

终于,成功地启动了 CEC-IDE:

应用启动图

这个熟悉的界面,和 VSCode 不能说相似,简直是一模一样。

原来,它会跳转到数字广东的门户,与普通开发者无关。

登录页面

此外,我发现 CEC-IDE 使用了自己的插件市场,而不是微软的 Marketplace。

虽然这个市场收录了许多第三方插件,主要位于“工具与效率”类别,但与微软的 VSCode(或更开源的 VSCodium)的 Marketplace 相比,数量仍有差距。

特别引人注目的是“数字政府”插件:

插件示例

显然,这些插件非常独特。

最后,让我们看一下官方文档中难以捉摸的内容——

“国企品牌,自主研发,值得信赖的品质”,“与国产操作系统兼容”:

官方文档1

以及“与 VSCode 插件完全兼容”:

官方文档2

因此,我们得出结论:CEC-IDE 是基于 VSCode 源代码粗糙制作的定制开发工具。其目标用户不仅不包括中国以外的开发者,甚至不包括大多数国内开发者。

然而,令人不解的是,尽管它自称“自主研发”,但这款工具甚至不完全遵循 MIT 开源协议。

这引人深思,甚至与那些努力优化 UI 设计的 Redcore 浏览器相比,CEC-IDE 似乎毫无改善。

更不用说,CEC-IDE 竟然还推出了 VSCode/VSCodium 中从未有过的“会员功能”

因此,一些国内开发者不得不发出疑问,于是他们在 VSCode 的 GitHub 仓库中提出了问题:

问题提出

链接:GitHub 问题链接

(值得指出的是,提出这种问题的方式实际上并不理想,既不具备高价值,也缺乏建设性,还可能对微软 VSCode 项目的维护者造成困扰。因此,我本人不太支持这种做法;至于这个问题,由于已被微软封锁讨论,原作者也手动关闭了该问题,现在已无法再评论。)

截止目前

官网现在已经无法访问了
官网访问限制

CEC-IDE 的官方指南文档也无法正常打开:

CEC-IDE 指引文档

CEC-IDE 的欢迎页和插件市场已经无法正常显示:

欢迎页及市场问题

原文 https://appsoftea.com/zh/cec-ide/
参考 https://www.zhihu.com/question/619023882/answer/3181234978

免费开源的文件夹同步神器 FreeFileSync

背景

FreeFileSync 通过比较一个或多个文件夹的内容、日期或文件大小,并根据用户定义的设置进行内容同步。除了支持本地文件系统和网络共享,FreeFileSync 还可以同步到 FTP、FTPS、SFTP 和 MTP 设备。

这是一款功能强大且易于使用的数据同步工具,可帮助用户在多个设备之间同步文件和文件夹。它支持多种操作系统,包括 Windows、Mac 和 Linux,是一款备受欢迎的免费开源的数据同步软件

参考 https://appsoftea.com/zh/freefilesync/

本教程旨在向大家展示如何实现定时将文件同步到局域网中的另一台电脑上,当然,也可以同样用于定时同步到移动硬盘。

如果你打算同步到移动硬盘,可以直接跳过【搭建 FTP】这一步。

安装 FreeFileSync

FreeFileSync

虽然从官网下载的版本有一些功能是受限的,但你可以通过捐赠获取付费版本以获得更多功能。

捐赠

绿色版本的 FreeFileSync 安装包只有 19MB,该版本拥有完整的功能。

下载地址:FreeFileSync:吹爆这款文件同步神器!

搭建 FTP

请注意:搭建 FTP 服务器需要 Windows 专业版本。

点击右键【电脑】,选择【属性】,即可查看 Windows 的版本。
windows电脑版本

  1. 安装 IIS 工具
    选择安装【FTP 服务器】、【Web 管理工具】和【万维网服务】。
  2. 设置开机启动 FTP 服务

使用【Win+R】组合键打开运行窗口,输入【Services.msc】,

启动 FTP 服务,确保创建的 FTP 服务器能够启动。

有时候重启电脑后还是不能成功自动启动,要手动启动这个服务

  1. 创建 FTP 用户

在桌面电脑图标上右键点击“管理”,在【用户】下右键点击【新用户】。

创建成功的 ftp 新用户

  1. 配置 FTP 服务器

使用【win+r】打开 IIS,输入【inetmgr

点击【添加新站点】

设置 IP 地址为本地 IP。

上面这 4 步已经完成了 FTP 服务器的搭建。

我们来测试一下效果:

ip:192.168.43.237 用户名:ftpuser 密码:123456

点击【浏览】,能查看到 DataBase 文件夹的【测试数据】

开始同步

这里演示如何从 FTP 服务器同步文件到另一台电脑的文件夹中,这是一个常见的场景,特别是在需要将备份的数据库文件同步到另一台电脑上保存时。

开始同步

ftp 服务器上的 D 盘的【测试数据】文件夹如图所示:

从 ftp 服务器同步到另一台电脑的文件夹 D 盘的下

通过点击【同步】按钮,可以实现同步,

非常简单。

温馨提示

我的使用场景是定时备份多个版本的数据,所以我会将所有文件放在移动硬盘中,但不会将移动硬盘中的文件复制回来,即进行单向同步。此外,我还想将文件历史版本保存到另一个文件夹中,所以我的设置如下图所示。

温馨提示

历史版本这里的文件夹类似于回收站,会记录每一个文件的历史版本。注意:最好不要选择【永久】,否则被覆盖/删除的文件的历史版本无法恢复!

左侧是源路径,右侧是目标路径,不要将路径写反了。

定时同步

上面的几个详细步骤已经完成了同步,成功同步后可以【另存为批处理作业】

点击【另存为】

这个.batch 文件就是同步文件的规则

你可以使用 Windows 的【任务计划程序】来实现定时同步,也可以使用 FreeFileSync 来实现。

接下来,打开系统的任务计划程序,创建一个定时保存的任务。

定时同步

这里新建一个“1 分钟同步一次”的任务器

设置触发器和操作,创建定时任务。

设置“操作”,这里选择刚刚【另存为】的批处理文件

创建成功,如图所示:

定时同步结果,我这里在 ftp 服务器上每隔一两分钟就建了一个文件,效果和预期一样

总结

总体而言,FreeFileSync 具有简单直观的界面,操作简单。它提供了许多高级功能,使其适用于各种不同的同步需求。无论你是想在不同设备之间同步文件,还是想定期备份重要数据,FreeFileSync 都能胜任这些任务。同志们,别犹豫了,赶紧试试吧!

请注意,在进行任何文件同步、备份或迁移操作时,务必提前做好重要数据的备份,以免发生意外情况。

原文来自 https://www.zhihu.com/question/345199210/answer/3110527701 感谢

Python in Excel 中的公开预览:将 Python 和 Excel 分析有机结合

Python 是当今最受欢迎的编程语言之一,深受企业和学生的喜爱,而 Excel 是一种必不可少的工具,用于组织、操作和分析各种数据。然而,直到现在,还没有一种简单的方法可以让这两个世界共同运作。

今天,我们非常高兴地介绍Python in Excel 中的公开预览——在同一 Excel 网格中实现 Python 和 Excel 分析的集成,以实现连续的工作流程。

Python in Excel 中将 Python 强大的数据分析和可视化库与您熟悉和喜爱的 Excel 功能相结合。您可以使用 Python 绘图和库在 Excel 中操作和探索数据,然后使用 Excel 的公式、图表和数据透视表进一步优化您的洞察力。

无缝工作

现在,您可以通过直接从 Excel 功能区访问 Python 在熟悉的 Excel 环境中进行高级数据分析。无需设置或安装。使用 Excel 内置的连接器和 Power Query,您可以轻松将外部数据带入 Python in Excel 工作流程中。

我们与 Anaconda 合作,Anaconda 是一家领先的企业级 Python 软件包库,全球数千万数据从业者在使用。Python in Excel 利用在 Azure 中运行的 Anaconda 发行版进行 Python 运行,其中包括最流行的 Python 库,如用于数据操作的 pandas,用于高级统计建模的 statsmodels,以及用于数据可视化的 Matplotlib 和 seaborn。

要查看机器学习和可视化示例,并了解更新,请访问 Excel 官方博客…

缩略图图像1标题:通过Python in Excel中无缝汇总和可视化您的数据。通过 Python in Excel 中无缝汇总和可视化您的数据。

轻松协作

在您喜爱的工具(如 Microsoft Teams 和 Microsoft Outlook)中共享工作簿和 Python 分析。通过评论和@提及无缝协作,与同事一起进行协同编辑,就像在 Excel 中一样。即使没有激活 Python in Excel,团队成员也可以刷新 Python in Excel 中的分析以获取最新信息。

缩略图图像2标题:通过评论和@提及轻松协作通过评论和@提及轻松协作

自动获得企业级安全性

保护您的数据是我们的首要任务,因此我们在 Python in Excel 的设计核心注入了安全性和隐私性。Python in Excel 在 Microsoft Cloud 上运行,作为 M365 连接体验,拥有企业级安全性。

在此了解有关我们数据安全性的更多信息

缩略图图像3标题:使用Python绘图可视化您的数据使用 Python 绘图可视化您的数据

查看客户和合作伙伴对 Python in Excel 的评价

缩略图图像4,标题为:介绍Python in Excel:数据分析和可视化的最佳结合

麦金尼 – “在 Excel 中运行 Python 简化了麦金尼的报告工作流程。我们过去需要在 Jupyter Notebook 中操作数据结构、筛选和汇总数据,然后在 Excel 中创建可视化效果。现在我们可以在 Excel 中管理整个工作流程。这将使 Excel 变得更加强大,并使 Python 在整个组织中更加易于使用。作为我职业生涯中最令人兴奋的更新,Python 支持是 Excel 的最大亮点!” – Greg Barnes,数据和分析执行总监

缩略图图像5,标题为:介绍Python in Excel:数据分析和可视化的最佳结合

麦格劳·希尔 – “麦格劳·希尔的理念是为所有人提供教育,我们与微软的合作有助于改善学生访问 Excel 工具,提高职业就业能力。Python 是大学和学院最需求的技能之一,我们对 Excel + Python 的组合感到非常激动,它将为教育工作者和学生提供一个强大的新途径,以更快地进行分析,实现更大的协作和学习,最终将学生引向更加光明的未来。” – Rebecca Olson,高级投资组合总监

缩略图图像6,标题为:介绍Python in Excel:数据分析和可视化的最佳结合

毕马威 – “毕马威和微软正在大力投资于提供先进的基于云的税务技术。在毕马威,我们对 Python in Excel 中的影响感到兴奋,这对我们的税务客户来说意义重大。在 Microsoft 云提供的数据和安全性承诺的支持下,Python 有可能增强高级分析的 Excel 体验,同时为公司提供透明度、简易性和对财务状况更深入的洞察力。” – Tejas Varia,税务数据与分析主管

而我们的工作才刚刚开始。敬请期待更多令人激动的消息!

通过 Python in Excel 使您的数据分析更加强大,讲述更好的故事。

开始使用 Python in Excel

对于在 Microsoft 365 Insiders 计划 Beta 频道中的人们,Python in Excel 正在进行公开预览。此功能将首先在 Windows 版的 Excel 中推出,从构建 16818 开始,然后在以后的日期推出到其他平台。

要使用 Python in Excel,加入Microsoft 365 Insiders 计划。选择 Beta 频道 Insider 级别,以获取 Excel 应用程序的最新版本。

安装最新的 Excel Insider 构建后,打开一个空白工作簿,然后执行以下步骤。

  1. 在功能区中选择“公式”。
  2. 选择“插入 Python”。
  3. 在弹出的对话框中选择“尝试预览”按钮。

还没有收到吗?这可能是我们的问题,而不是您的问题。功能会随着时间的推移发布,以确保一切正常运行。我们会突出显示您可能尚未拥有的功能,因为它们会逐渐发布给更多的内测人员。有时根据您的反馈,我们也会移除某些元素以进行进一步的改进。尽管这很少见,但我们还保留了在产品中完全取消某个功能的选择权,即使作为内测人员,您也有机会尝试它。

在预览版中,Python in Excel 将包括在您的 Microsoft 365 订阅中。在预览版之后,某些功能将在没有付费许可证的情况下受到限制。有关在正式发布之前将提供更多详细信息。

加入 Microsoft 365 Insiders 计划。成为第一个了解 Microsoft 365 应用程序和服务中的下一步内容的人,分享您的反馈,并加入我们的内测社区!

注册以获取有关 Python in Excel 未来可用性的通知

下一步的期望

如上所述,我们正在向 Insiders Beta 频道公开预览 Python in Excel,因此您应该期望很快会有新的功能。请关注以下领域的更新:改进的编辑体验(例如自动完成和语法突出显示)、默认修复、增强的错误行为、帮助和文档等。此外,为了防止滥用,系统目前具有一些数据大小和计算限制,我们将密切监控并进行调整。

我们需要您的反馈!Excel 和 Python 用户可以在应用程序内直接提供反馈(转到“帮助”>“反馈”),在我们的反馈门户上提出改进建议,或在GitHub上与我们的团队互动。

其他资源

Python in Excel 简介

开始使用 Python in Excel

了解更多关于 Anaconda 的信息

大圣净化、叮小跳、李跳跳接连收到律师函!

近日,基于安卓辅助权限和 Xposed 模块的应用,用于跳过应用启动广告和拦截页面广告的工具大圣净化和叮小跳相继收到了腾讯的律师函。

这些应用的开发者提供了一系列工具,包括大圣净化、一指禅、悟空加速以及八戒助手等,这些工具的主要功能都是针对广告进行处理。

类似的应用还包括李跳跳,这些工具可以自动跳过应用启动广告,有些还能够通过过滤规则屏蔽页面广告。

然而,虽然这些工具备受用户欢迎,但它们也存在法律风险,特别是在国内,从事广告拦截类工具很容易引发大公司的起诉。

大圣净化应遭腾讯律师函

根据大圣净化开发者的消息,腾讯公司通过律师事务所向他们发出了律师函,指控大圣净化存在不正当竞争行为。

腾讯发现大圣净化可以屏蔽和过滤 QQ 浏览器的广告服务,认为这种行为违反了反不正当竞争法。

腾讯称他们有足够的证据表明大圣净化涉嫌构成不正当竞争,要求其在 48 小时内停止运营,并下架该软件,包括但不限于各大应用市场和软件发布平台。

叮小跳同样遭受腾讯律师函

在本月初,叮小跳也收到了腾讯的律师函,要求其停止运营。叮小跳是类似于李跳跳和大圣净化的应用,可以自动跳过应用启动广告。

腾讯的律师函内容与大圣净化收到的类似,指控叮小跳干扰了 QQ 浏览器的广告服务,违反了反不正当竞争法。

安卓跳过启动广告工具大圣净化/叮小跳均收到腾讯律师函后停止运营

安卓跳过启动广告工具大圣净化/叮小跳均收到腾讯律师函后停止运营

李跳跳再收律师函警告

继大圣净化之后,另一款备受知名的安卓平台跳过应用启动广告工具——李跳跳,也在近期受到了腾讯律师函的影响。李跳跳作为一款用于跳过应用启动广告的工具,在此次事件中同样受到了腾讯的法律干预,不过与大圣净化类似,李跳跳开发者也选择停止运营。

李跳跳的运作方式类似于大圣净化,它利用安卓系统的辅助权限来自动点击应用启动页面上的“跳过”按钮,从而实现跳过应用启动广告的功能。然而,与大圣净化不同的是,李跳跳是一个单机应用,没有联网权限,也没有盈利模式,完全免费提供下载和使用。

虽然开发者坚称李跳跳并没有侵犯任何法律法规,因为它只是在用户界面上自动点击按钮,并没有破坏应用的完整性或者入侵隐私,但是在腾讯的律师函中,腾讯声称李跳跳等类似工具干扰了其 QQ 浏览器的广告服务,违反了反不正当竞争法。

因此,尽管开发者认为自己并没有侵权,他们仍然选择停止运营,避免与腾讯这样的大公司发生法律纠纷。这也再次凸显了个人开发者在面对大公司的法律压力时的无奈境地,即便是合法性存在争议的情况下,很多开发者也难以承担法律诉讼的风险和成本。

李跳跳停止运营后,虽然这款工具本身仍然可以继续使用,但用户可能会面临日后体验逐渐下降的情况,因为没有开发者的支持和更新,工具的稳定性和兼容性可能会受到影响。这也引发了一些用户对类似工具的未来前景的担忧,他们是否还能找到替代方案来跳过启动广告。

总的来说,无论是大圣净化还是李跳跳,这两款跳过应用启动广告工具的停止运营事件,再次突显了在当前法律环境下,个人开发者面对大公司的法律干预时的困境。即便开发者坚信自己没有违法,但为了避免法律风险,他们选择了停止运营,这或许也将对类似工具的未来产生一定的影响。

开发者面临艰难抉择:

虽然一些开发者认为他们的应用并没有侵犯法律,但由于腾讯作为一个大公司有充足的资源投入在法律方面,开发者们很难在法律领域与其抗衡。

面对腾讯的律师函,这些个人开发者难以招架,因为他们没有足够的时间、金钱和精力来与腾讯进行法律纠纷。

因此,大部分开发者只能选择按照要求停止运营自己的应用,以避免进一步的法律麻烦。

未来前景:

在这种情况下,这些应用的停止运营可能会对广告行业产生一些影响。用户可能会感受到更多的广告干扰,而开发者们也需要寻找新的创收途径。

尽管一些开发者认为他们的应用并未违法,但是面对大公司的法律压力,他们很难继续维持自己的应用。

总之,安卓广告跳过工具的命运成了法律与技术之间的较量,而在这场较量中,大公司的法律优势往往会占据上风。

原文来自 https://www.landiannews.com/archives/99910.html
https://www.landiannews.com/archives/99916.html
感谢

Excel 函数教程(11):如何使用 INDIRECT 函数

1. 什么是 INDIRECT 函数?

INDIRECT 函数是 Microsoft Excel 中的一种内置函数,它允许用户以文本方式引用其他单元格或区域。这意味着您可以通过一个包含单元格引用的文本字符串,来动态地引用工作簿中的其他单元格或区域。这种功能对于创建动态报表、根据条件引用单元格以及简化公式等任务非常有用。

2. INDIRECT 函数的作用是什么?

INDIRECT 函数的主要作用是使单元格引用变得动态和可变。通常情况下,Excel 中的公式直接引用单元格,但有时我们需要在运行时动态更改引用的单元格。例如,当您需要根据用户的选择或特定条件来引用不同的单元格时,INDIRECT 函数就会派上用场。

3. INDIRECT 函数的基本语法和参数详细介绍

INDIRECT 函数的基本语法如下:

=INDIRECT(引用文本, [A1])

其中:

  • 引用文本 是一个包含单元格引用的文本字符串,可以是直接输入的文本,也可以是包含单元格引用的单元格。
  • [A1] 是一个可选参数,用于指定引用文本的类型。如果为 TRUE(默认),则引用文本按照 A1 样式的引用解释;如果为 FALSE,则引用文本按照 R1C1 样式的引用解释。

4. 给出 3 个使用 INDIRECT 函数的示例,并配上表格

示例 1:动态求和

假设我们有一个表格如下:

A B
数量 价格
5 10
3 15

我们想根据用户输入的行号,动态计算该行的数量和价格之和。使用 INDIRECT 函数,可以在 C2 和 C3 单元格中分别输入以下公式:

在 C2 单元格:

=SUM(INDIRECT("A" & D2), INDIRECT("B" & D2))

在 C3 单元格:

=SUM(INDIRECT("A" & D3), INDIRECT("B" & D3))

在 D2 和 D3 单元格中,用户输入要求和的行号(2 或 3),公式将根据用户的输入动态地计算相应行的数量和价格之和。

示例 2:从其他工作簿提取数据

假设您有两个工作簿:Workbook1 和 Workbook2,您想要从 Workbook2 中提取数据并在 Workbook1 中进行计算。可以使用以下公式:

在 Workbook1:

A B
计算
5 =INDIRECT(“[Workbook2.xlsx]Sheet1!A1”) + A2

在 Workbook2 的 Sheet1 中:

A
10

此示例中,公式会动态地从 Workbook2 的 Sheet1 中提取单元格 A1 的值(10)并进行计算。

示例 3:条件引用单元格

假设我们有一个简单的成绩表,包含学生姓名(A 列)、科目(B 列)和成绩(C 列)。我们想要根据不同科目和学生的姓名动态引用成绩。

A B C
姓名  科目  成绩 
张三  数学  98
李四  语文  90
王五  英文  95

在 E1 和 E2 单元格中,用户输入所需的科目和学生姓名。在 F1 单元格中,输入以下公式以根据用户的输入动态引用成绩:

=INDIRECT("C" & MATCH(E2, A:A, 0))

此公式将根据输入的学生姓名在学生姓名列中查找匹配的行,并返回相应的成绩。

通过这些示例,您可以看到如何使用 INDIRECT 函数在 Excel 中实现动态引用,使您的工作表更加灵活和适应不同的情况。根据您的需求,您可以进一步探索并应用 INDIRECT 函数的其他用法。

原文 https://appsoftea.com/zh/excel-indirect/

如何查看Linux系统架构类型

识别 Linux 操作系统的位数类型是一项常见的任务。下面将介绍几个可用于确定系统架构的命令,无论你是在桌面版还是文本界面的 Linux 环境下,这些方法均适用于各种发行版,如 RHEL、CentOS、Fedora、Debian、Ubuntu、Linux Mint 和 OpenSUSE 等。

1. uname 命令

使用 uname -a 命令,可以直接获取当前 Linux 系统的架构信息。该命令适用于几乎所有的 Linux/Unix 系统。

查看Linux系统是32位还是64位架构

2. dpkg 命令

若你使用的是基于 Debian/Ubuntu 的操作系统,可以使用 dpkg 命令来查看系统的位数。在终端中执行以下命令:

输出结果为 amd64 表示系统为 64 位,输出为 i386 则表示系统为 32 位。

3. getconf 命令

getconf 命令可用于显示系统变量配置信息。你可以使用以下命令查看 Linux 系统架构:

4. arch 命令

使用 arch 命令可以显示操作系统的架构类型,与 uname -m 命令类似。如果输出为 x86_64,则表示系统为 64 位;如果输出为 i686i386,则表示系统为 32 位。

查看Linux系统是32位还是64位架构

5. file 命令

file 命令可以通过检查 /sbin/init 文件(在 Ubuntu 15.10 中链接到 /lib/systemd/systemd)来确定系统的架构类型:

查看Linux系统是32位还是64位架构

这些方法可以帮助你轻松地确定当前 Linux 系统的位数类型,无论你使用的是哪个发行版。

参考

VSCode 源码学习(1):本地运行

VSCode 源码学习(1):本地运行

背景

最近项目架构参考 vscode,准备学习一下 vscode 的源码。第一步就是先跑起来。

操作步骤基本上是参考官方贡献文档来的

VSCode: How to Contribute

这里提炼一些关键步骤。如有不对,请多参考官方文档。

步骤

因为 vscode 编译会用 node-gyp,node-gyp 在 windows 中安装会比较麻烦,所以我的计划是在 WSL 中运行。

  1. 环境准备

    确保你的 WSL 中已经安装好了 git、nodejs、yarn、Python、C++编译工具链

  • Git
  • Node.JSx64,版本 >=18.15.x 和 <19
  • Yarn 1,版本>=1.10.1和<2,按照安装指南
  • Python(node-gyp 必需;查看 node-gyp readme 对于当前支持的 Python 版本)
  • 适用于您平台的 C/C++ 编译器工具链:

    “`sh
    sudo apt install python3 python-is-python3 libsecret-1-dev libxss1 libx11-dev libxkbfile-dev libasound2 libgtk-3-0 libgdk-pixbuf2.0-0 libnss3 libxtst6 libxi6 libxdamage1 libxcursor1 libxcomposite1 libx11-xcb1 libgbm1
    “`

  • 推荐使用 VSCode 来开发。安装 VS CodeRemote – WSL 扩展。
  1. 安装依赖

    yarn
    

    yarn安装成功

  2. 启动 electron

    ./scripts/code.sh --no-sandbox
    

    第一次执行比较慢,多等待一会,大概 2 分钟后就能启动了。
    code.sh执行成功

报错

执行./scripts/code.sh报错

可能是刚开始没有安装 C++工具链,执行./scripts/code.sh报了一些错误

找不到 ternary-stream 模块

Error: Cannot find module 'ternary-stream'

找不到 vscode-gulp-watch 模块

Error: Cannot find module 'vscode-gulp-watch'

gssapi.h 错误

../src/unix/kerberos_gss.h:21:14: fatal error: gssapi/gssapi.h: No such file or directory

基本上安装好 C++依赖就没有了。

yarn 安装依赖的时候报 gyp 错误

还有一个常见的 node-gyp 错误

/bin/sh: 1: pkg-config: not found
gyp: Call to 'pkg-config --cflags libsecret-1' returned exit status 127 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1

我尝试清除依赖后重新安装依赖就好了

# 清除依赖
git clean -xfd
# 重新安装依赖
yarn

提示not a valid Electron app

这是官方提醒的报错,注意一下就行,需要执行

yarn watch

参考

Python Tkinter 表格组件

需求

我想在 tkinter 做的 python GUI 程序中加入一个表格,由于官方库没有表格这个组件,只能找社区组件或者自己造一个表格组件。

方案一

通过 grid 布局功能,造一个简单的表格。缺点是和其他组件配合构造 GUI 就不太方便。

使用

from tkinter import *

root = Tk()

height = 10
width = 5
cells = {}
for i in range(height): #Rows
    for j in range(width): #Columns
        b = Entry(root, text="")
        b.grid(row=i, column=j)
        cells[(i,j)] = b

mainloop()

方案二

采用社区已有组件 tksheet,一个用 tkinter canvas 手动绘制的表格

github 地址:https://github.com/ragardner/tksheet

支持多达数亿个单元格的大数据渲染,只重绘表格的可见部分,所以能运行得相当流畅。

还支持单元格颜色和背景。

使用

确保 Python 3.6+版本,安装依赖

pip install tksheet

使用

from tksheet import Sheet
import tkinter as tk


class demo(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.grid_columnconfigure(0, weight = 1)
        self.grid_rowconfigure(0, weight = 1)
        self.frame = tk.Frame(self)
        self.frame.grid_columnconfigure(0, weight = 1)
        self.frame.grid_rowconfigure(0, weight = 1)
        self.sheet = Sheet(self.frame,
                           data = [[f"Row {r}, Column {c}\nnewline1\nnewline2" for c in range(50)] for r in range(500)])
        self.sheet.enable_bindings()
        self.frame.grid(row = 0, column = 0, sticky = "nswe")
        self.sheet.grid(row = 0, column = 0, sticky = "nswe")


app = demo()
app.mainloop()

tksheet

参考

Excel 函数教程(10):如何使用 AVERAGEIF 函数

1. 什么是 AVERAGEIF 函数?

AVERAGEIF 函数是 Excel 中的一个强大函数,用于计算满足特定条件的数字的平均值。它允许您在进行平均值计算时只考虑满足指定条件的单元格值,从而帮助您更精确地分析数据。

2. AVERAGEIF 函数的作用是什么?

AVERAGEIF 函数的主要作用是根据给定的条件计算平均值。它适用于需要在数据中筛选特定条件下的值,然后计算这些值的平均值的情况。这样,您可以排除或专注于特定数据子集,从而得出更有意义的分析结果。

3. AVERAGEIF 函数的基本语法和参数详细介绍

AVERAGEIF 函数的基本语法如下:

AVERAGEIF(range, criteria, [average_range])

参数说明:

  • range: 要进行条件判断的区域,包含要筛选的数据。
  • criteria: 设置筛选条件,可以是数值、文本或表达式。
  • average_range (可选): 包含要计算平均值的区域,如果省略,则默认使用与range相同的区域。

4. 使用 AVERAGEIF 函数的示例

示例 1:计算某个部门的平均销售额

A B
部门 销售额
人事 1200
财务 1500
销售 2000
人事 1800
财务 1600
销售 2100

要计算”销售”部门的平均销售额,可以使用以下公式:

=AVERAGEIF(A2:A7, "销售", B2:B7)

结果为:(2000 + 2100) / 2 = 2050

示例 2:计算某个地区的平均温度

A B
日期 温度(℃)
8/1 28.5
8/1 29.0
8/2 27.5
8/2 28.0

要计算”8/1″这个日期的平均温度,可以使用以下公式:

=AVERAGEIF(A2:A5, "8/1", B2:B5)

结果为:(28.5 + 29.0) / 2 = 28.75

示例 3:计算高于某个阈值的产品评分的平均值

A B
产品 评分
产品 A 4.5
产品 B 3.8
产品 C 4.2
产品 A 4.0

要计算评分高于 4.0 的产品的平均评分,可以使用以下公式:

=AVERAGEIF(B2:B5, ">4.0", B2:B5)

结果为:(4.5 + 4.2) / 2 = 4.35

通过以上示例,您可以灵活地运用 AVERAGEIF 函数来满足各种数据分析需求,仅计算符合条件的数据的平均值,从而更好地洞察数据背后的信息。

原文 https://appsoftea.com/zh/excel-averageif/

Excel 函数教程(9):如何使用 AVERAGEIFS 函数

1. 什么是 AVERAGEIFS 函数?

AVERAGEIFS 函数是 Microsoft Excel 电子表格软件中的一个功能强大的函数,用于根据多个条件计算满足条件的单元格平均值。它允许你在一个或多个范围内根据多个条件进行筛选,并计算满足所有条件的单元格的平均值。

2. AVERAGEIFS 函数的作用是什么?

AVERAGEIFS 函数的主要作用是根据多个条件计算单元格的平均值。这对于在数据分析和报告中汇总和计算特定条件下的平均值非常有用,使用户能够更好地了解数据的趋势和特征。

3. AVERAGEIFS 函数的基本语法和参数详细介绍

AVERAGEIFS 函数的基本语法如下:

AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

参数解释:

  • average_range:要计算平均值的范围。
  • criteria_range1:要检查的第一个范围。
  • criteria1:与第一个范围中的单元格进行比较的条件。
  • criteria_range2:(可选)要检查的第二个范围。
  • criteria2:(可选)与第二个范围中的单元格进行比较的条件。

可以根据需要添加更多的范围和条件对。

4. 给出 3 个使用 AVERAGEIFS 函数的示例

示例 1:课程成绩平均分统计

假设你有一个课程成绩表格,其中包含了学生姓名(A 列)、科目(B 列)和分数(C 列)。你想要计算某位学生在数学科目上得分超过 90 分的平均分。

A B C
姓名 科目 分数
小明 数学 85
小红 数学 92
小明 英语 78
小红 英语 88

在另一个单元格中使用以下 AVERAGEIFS 函数:

=AVERAGEIFS(C2:C5, A2:A5, "小红", B2:B5, "数学", C2:C5, ">90")

结果将是 92,表示小红在数学科目上得分超过 90 分的平均分为 92 分。

示例 2:销售额平均值统计

假设你有一个销售数据表格,其中包含了产品名称(A 列)、销售额(B 列)和销售日期(C 列)。你想要计算在某个特定月份内销售额超过 1000 的产品的平均销售额。

A B C
产品名 销售额 销售日期
产品 A 1200 2023-07-15
产品 B 800 2023-07-20
产品 C 1500 2023-08-05
产品 A 900 2023-08-10

在另一个单元格中使用以下 AVERAGEIFS 函数:

=AVERAGEIFS(B2:B5, C2:C5, ">=2023-08-01", C2:C5, "<=2023-08-31", B2:B5, ">1000")

结果将是 1500,表示在 2023 年 8 月份内销售额超过 1000 的产品的平均销售额为 1500。

示例 3:员工绩效评估

假设你有一个员工绩效评估表格,其中包含了员工姓名(A 列)、部门(B 列)和绩效得分(C 列)。你想要计算某个特定部门内绩效得分超过 80 分的员工的平均绩效。

A B C
姓名 部门 绩效
张三 销售 85
李四 技术 92
王五 销售 78
赵六 技术 88

在另一个单元格中使用以下 AVERAGEIFS 函数:

=AVERAGEIFS(C2:C5, B2:B5, "销售", C2:C5, ">80")

结果将是 85,表示销售部门内绩效得分超过 80 分的员工的平均绩效为 85 分。

通过这些示例,你可以更好地理解如何使用 AVERAGEIFS 函数来根据多个条件计算单元格的平均值。根据你的实际需求,可以根据 AVERAGEIFS 函数的语法和参数进行灵活的调整和使用。

原文 https://appsoftea.com/zh/excel-averageifs/