首页 文章 精选 留言 我的

精选列表

搜索[RTX50系],共3066篇文章
优秀的个人博客,低调大师

淘系前端架构 - 周刊 - 210809 期

🗞 News Visual Studio Code 1.59 发布 扩展视图进行了一些改进:丰富了悬停时的扩展详细信息,设置了新的运行时状态选项卡 设置编辑器引入验证功能:设置编辑器现在支持对象验证 拖放终端方面进行了改进:现在能将终端跨窗口移动到编辑器和面板区域 自定义扩展主题:一次设置多个颜色主题 内置对 Jupyter notebooks 支持:.ipynb文件现在能直接在 VS Code 中打开 改进了Notebook UI:显示折叠单元格的第一行 首批测试 API 已经完成:支持在 VS Code 中使用内置测试资源管理器运行测试 调试反汇编视图预览:在 VS Code 中显示反汇编的 C++ 代码 实时预览插件有了新功能:VS Code 现在支持实时 HTML 预览,支持 JavaScript 调试 Remote - Containers devcontainer CLI:引入用于处理开发容器的命令行界面 Release:Visual Studio Code July 2021 Svelte 首款 IDE 发布 首款基于 Electron 和 Svelte 开发的 IDE 正式发布。 GitHub Repo:oslabs-beta/SvelteStorm Home Page:SvelteStorm 📦 Open Source html-to-image 一个基于dom-to-image改造并添加的一些新特性的 HTML 转图片库。 GitHub Repo:bubkoo/html-to-image vanilla-extract 零运行时的 CSS in TS 方案。允许你使用 TypeScript(或 JavaScript)编写样式,允许使用 CSS Variables,并且会生成 scoped className,这些都会在编译时被编译为静态的 CSS 文件。 GitHub Repo:seek-oss/vanilla-extract CodeSandbox Demo:vanilla-extract-webpack-react - CodeSandbox Neon 用于编写安全、快速的原生 Node.js 模块的 Rust binding。 GitHub Repo:neon-bindings/neon Sequelize-Auto 通过命令行自动生成基于 Sequelize 的 model。 GitHub Repo:sequelize/sequelize-auto Mermaid 采用类 Markdown 的方式从文本生成图表和流程图。 很多同学都在使用 Typora 做 Markdown 编辑器,Mermaid 就是 Typora 内置的作图工具,能够让你使用类 Markdown 的语法生成各种图表和流程图,语法非常简洁易懂。 举例,如果需要生成一个简单的流程图,只需要在 Typora 中输入代码块,选择语言为 mermaid 即可。 ```mermaid graphTD; A-->B; A-->C; B-->D; C-->D; ``` 对应的流程图是这样的: 不仅能够画流程图,还能画甘特图。 ```mermaid gantt dateFormatYYYY-MM-DD titleAddingGANTTdiagramtomermaid excludesweekdays2014-01-10 sectionAsection Completedtask:done,des1,2014-01-06,2014-01-08 Activetask:active,des2,2014-01-09,3d Futuretask:des3,afterdes2,5d Futuretask2:des4,afterdes3,5d ``` 对应的甘特图是这样的: GitHub Repo:mermaid-js/mermaid Documentation:mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs. 📑 Article Safari isn't protecting the web, it's killing it 最近有很多关于“Safari 是新的 IE”的讨论,也有人说“Safari 实际上是在保护 Web,它拒绝添加那些可能造成安全/隐私/体积问题的实验性特性”,众说纷纭。 文章从各个角度对“Safari isn't protecting the web, it's killing it”这一观点进行了阐述,非常值得学习和思考! 原文链接:Safari isn't protecting the web, it's killing it 用「增量」思想提升代码检查和打包构建的效率 推荐这篇文章的原因是近期团队在开发过程中受到了 Lint 时间上的困扰,无论是本地还是 CI,Lint 时间都偏长。 文章详细介绍了如何实现文件级别的增量代码检查和增量打包构建,非常值得学习! 原文链接:用「增量」思想提升代码检查和打包构建的效率 客户端产品一般是用什么编程语言写的? 回答详细介绍了作者使用 Rust、Neon、Electron 作为客户端产品技术选型的原因,并针对其中的一些问题做了详细解答。 原文链接:客户端产品一般是用什么编程语言写的? React IO 组件 & 锁 文章详细讲解了如何在 React 中实现一个能够在受控组件和非受控组件之间切换的输入框组件,顺便介绍了一些与锁有关的的计算机基础知识,非常值得学习! 原文链接:React IO组件 & 锁 你真的了解 JAMStack 吗? 文章详细介绍了 JAMStack 的工作流,并对 JAMStack 的优缺点及适用场景做了较为深入的分析,非常值得学习! 原文链接:Jamstack,你真的了解它吗?

优秀的个人博客,低调大师

治愈系大白要来了,约吗?

随着科技的高速发展, 人工智能(AI)越来越成为科幻电影热衷表现的题材。在过去几十年中,各大电影公司总计已经推出了至少30部以AI为主题的电影,而上映时间是2000年之后的更是占AI电影总数百分之六十多,关于人工智能的讨论也愈加甚嚣尘上,而电影中的科幻情节能否成为现实似乎变成了一个各界人士争相探讨的热点话题。今天小编来为大家介绍一部超人气科幻电影——《超能陆战队》,带大家走进AI的世界。 这部感动无数人的迪斯尼电影描述的是一个少年科学家在机器人“大白”帮助下,和朋友组成高科技战斗团队,寻找哥哥死因真相并打击坏蛋的故事。大白是主角哥哥打造的医疗用机器人,它能够扫描主人的身体状况,并诊断疾病、给予相对应的药物或者治疗,除此之外,大白圆滚滚、软绵绵的雪白造型也风靡了一大票观众,收获了很高的口碑和票房。 之前大多数对机器人的定位都是精密、高冷、理智、迅捷,而虚拟世界中的“大白”告诉你,身材肥胖、动作迟缓,像棉花糖、暖宝宝,最爱“抱抱”,超级大暖男才是人见人爱的机器人。它的可贵之处不在于“超能”,而在于“暖心”。 那么,吸粉无数的暖男“大白”背后藏着怎样的科技奥秘?片中“大白”的定位是一个医护型智能机器人,它可以与人进行肢体和语言互动,用户还能够改进并自己设定机器人的新动作,甚至可以自定义机器人的外型和运作方式。它可以利用语音识别和人体特征扫描的能力达到对人体健康状况做出准确判断与及时治疗的目的。 从现实角度出发,机器人“大白”主要综合了机器人制造、人工智能和智能医疗三大科技,恰恰是现在非常主流的设计,这将会在较长一段时间内推动人机界面设计进一步发展。 目前,医疗保健机器人已经不单单是科幻电影里的天马行空,如今已有大量的机器人被用于各种物理治疗中,还有一些机器人被用于帮助训练医生进行一系列治疗和手术。根据国际机器人联盟最新统计,全球医疗机器人市场总值正在以20%至30%的速度增长,到2017年销售额将超过85亿美元。 虽然以现今的科技水平还无法研制出功能媲美“大白”、能够时刻陪伴人们的个人医疗保健机器人,但是大白身上的某些功能如今已经能够实现了,而其他那些功能离实现的那天也不远了,例如,利用价格较为低廉的热成像技术,医疗机器人将能检测出因血流不畅、生物钟紊乱或者其他身体失调引起的异常体温。除此之外,热成像技术也使得医疗机器人感知人类及其举止变得简单了起来。简而言之,“大白”类智能医用机器人正以不同形式和功能逐步进入到我们的生活之中,智能医疗的未来图景也将逐步展现在我们眼前,正如李彦宏所说:“人工智能会让大白成真”。

优秀的个人博客,低调大师

给 Databend 添加 Scalar 函数 | 函数开发系例一

在 Databend 中按函数实现分为了:scalars 函数和 aggregates 函数。 Scalar 函数: 基于输入值,返回单个值。常见的 Scalar function 有 now, round 等。 Aggregate 函数: 用于对列的值进行操作并返回单个值。常见的 Agg function 有 sum, count, avg 等。 https://github.com/datafuselabs/databend/tree/main/src/query/functions/src 该系列共两篇,本文主要介绍 Scalar Function 从注册到执行是如何在 Databend 运行起来的。 函数注册 由 FunctionRegistry 接管函数注册。 #[derive(Default)] pubstructFunctionRegistry{ pubfuncs:HashMap<&'staticstr,Vec<Arc<Function>>>, #[allow(clippy::type_complexity)] pubfactories:HashMap< &'staticstr, Vec<Box<dynFn(&[usize],&[DataType])->Option<Arc<Function>>+'static>>, >, pubaliases:HashMap<&'staticstr,&'staticstr>, } 三个 item 都是 Hashmap。 其中,funcs 和 factories 都用来存储被注册的函数。不同之处在于 funcs 注册的都是固定参数个数的函数(目前支持最少参数个数为0,最多参数个数为 5),分为 register_0_arg, register_1_arg 等等。而 factories 注册的都是参数不定长的函数(如 concat),调用 register_function_factory 函数。 由于一个函数可能有多个别名(如 minus 的别名有 subtract 和 neg),因此有了 alias,它的 key 是某个函数的别名,v 是当前的存在的函数名,调用 register_aliases 函数。 另外, 根据不同的功能需求, 我们提供了不同级别的 register api。 函数构成 已知 funcs 的 value 是函数主体,我们来看一下 Function 在 Databend 中是怎么构建的。 pubstructFunction{ pubsignature:FunctionSignature, #[allow(clippy::type_complexity)] pubcalc_domain:Box<dynFn(&[Domain])->Option<Domain>>, #[allow(clippy::type_complexity)] pubeval:Box<dynFn(&[ValueRef<AnyType>],FunctionContext)->Result<Value<AnyType>,String>>, } 其中,signature 包括 函数名,参数类型,返回类型以及函数特性(目前暂未有函数使用特性,仅作为保留位)。要特别注意的是,在注册时函数名需要是小写。而一些 token 会经过 src/query/ast/src/parser/token.rs 转换。 #[allow(non_camel_case_types)] #[derive(Logos,Clone,Copy,Debug,PartialEq,Eq,Hash)] pubenumTokenKind{ ... #[token("+")] Plus, ... } 以实现 `select 1+2` 的加法函数为例子,`+` 被转换为 Plus,而函数名需要小写,因此我们在注册时函数名使用 `plus`。 with_number_mapped_type!(|NUM_TYPE|matchleft{ NumberDataType::NUM_TYPE=>{ registry.register_1_arg::<NumberType<NUM_TYPE>,NumberType<NUM_TYPE>,_,_>( "plus", FunctionProperty::default(), |lhs|Some(lhs.clone()), |a,_|a, ); } }); calc_domain 用来计算输出值的输入值的集合。用数学公式描述的话比如 `y = f(x)` 其中域就是 x 值的集合,可以作为f的参数生成 y 值。这可以使我们在索引数据时轻松过滤掉不在域内的值,极大提升响应效率。 eval 可以理解成函数的具体实现内容。本质是接受一些字符或者数字,将他们解析成表达式,再转换成另外一组值。 示例 目前在 function-v2 中实现的函数有这几类:arithmetric, array, boolean, control, comparison, datetime, math, string, string_mult_args, variant 以 length 的实现为例: length 接受一个 String 类型的值为参数,返回一个 Number 类型。名字为 length,domain 不做限制(因为任何 string 都有长度)最后一个参数是一个闭包函数,作为 length 的 eval 实现部分。 registry.register_1_arg::<StringType,NumberType<u64>,_,_>( "length", FunctionProperty::default(), |_|None, |val,_|val.len()asu64, ); 在 register_1_arg 的实现中,我们看到调用的函数是 register_passthrough_nullable_1_arg,函数名包含一个 nullable。而 eval 被 vectorize_1_arg 调用。 注意:请不要手动修改 register_1_arg 所在的文件 [src/query/expression/src/register.rs](https://github.com/datafuselabs/databend/blob/2aec38605eebb7f0e1717f7f54ec52ae0f2e530b/src/query/expression/src/register.rs) 。因为它是被 [src/query/codegen/src/writes/register.rs](https://github.com/datafuselabs/databend/blob/2aec38605eebb7f0e1717f7f54ec52ae0f2e530b/src/query/codegen/src/writes/register.rs) 生成的。 pubfnregister_1_arg<I1:ArgType,O:ArgType,F,G>( &mutself, name:&'staticstr, property:FunctionProperty, calc_domain:F, func:G, )where F:Fn(&I1::Domain)->Option<O::Domain>+'static+Clone+Copy, G:Fn(I1::ScalarRef<'_>,FunctionContext)->O::Scalar+'static+Clone+Copy, { self.register_passthrough_nullable_1_arg::<I1,O,_,_>( name, property, calc_domain, vectorize_1_arg(func), ) } 这是因为 eval 在实际应用场景中接受的不只是字符或者数字,还可能是 null 或者其他各种类型。而 null 无疑是最特殊的一种。而我们接收的参数也可能是一个列或者一个值。比如 selectlength(null); +--------------+ |length(null)| +--------------+ |NULL| +--------------+ selectlength(id)fromt; +------------+ |length(id)| +------------+ |2| |3| +------------+ 基于此,如果我们在函数中无需对 null 类型的值做特殊处理,直接使用 register_x_arg 即可。如果需要对 null 类型做特殊处理,参考 [try_to_timestamp](https://github.com/datafuselabs/databend/blob/d5e06af03ba0f99afdd6bdc974bf2f5c1c022db8/src/query/functions/src/scalars/datetime.rs)。 而对于需要在 vectorize 中进行特化的函数则需要调用 register_passthrough_nullable_x_arg,对要实现的函数进行特定的向量化优化。 例如 comparison 函数 regexp 的实现:regexp 接收两个 String 类型的值,返回 Bool 值。在向量化执行中,为了进一步优化减少重复正则表达式的解析,引入了 HashMap 结构。因此单独实现了 `vectorize_regexp`。 registry.register_passthrough_nullable_2_arg::<StringType,StringType,BooleanType,_,_>( "regexp", FunctionProperty::default(), |_,_|None, vectorize_regexp(|str,pat,map,_|{ letpattern=ifletSome(pattern)=map.get(pat){ pattern }else{ letre=regexp::build_regexp_from_pattern("regexp",pat,None)?; map.insert(pat.to_vec(),re); map.get(pat).unwrap() }; Ok(pattern.is_match(str)) }), ); 函数测试 Unit Test 函数相关单元测试在 [scalars](https://github.com/datafuselabs/databend/tree/d5e06af03ba0f99afdd6bdc974bf2f5c1c022db8/src/query/functions/tests/it/scalars) 目录中。 Logic Test Functions 相关的 logic 测试在 [02_function](https://github.com/datafuselabs/databend/tree/d5e06af03ba0f99afdd6bdc974bf2f5c1c022db8/tests/sqllogictests/suites/query/02_function) 目录中。 关于 Databend Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。 Databend 文档:https://databend.rs/ Twitter:https://twitter.com/Datafuse_Labs Slack:https://datafusecloud.slack.com/ Wechat:Databend GitHub :https://github.com/datafuselabs/databend

优秀的个人博客,低调大师

淘系前端架构周刊:WindiCSS v3.4.0 发布

News WindiCSS v3.4.0 发布 上周五 WindiCSS 带来了全新的 v3.4.0 版本,对齐了 Tailwind v3 中的许多实用工具。 Release:Release v3.4.0 · windicss/windicss Open Source unbuild 一个统一的 JavaScript 构建系统,具有以下特性: 经过优化的 bundler:基于 Rollup 的 bundler,支持 TypeScript 并支持生成 commonjs 和 ES modules 两种格式 + 类型声明 bundleless:集成 mkdist,用于单文件转译生成 bundleless 产物 通用类型生成器:集成 untyped &etc. GitHub Repo:unjs/unbuild: An unified javascript build system. Fig 一个命令行智能提示工具,支持 Git、文件系统、NPM、K8S、Docker、SSH 等众多 CLI 工具。 Home Page:Fig GitHub Repo:withfig/autocomplete: Fig adds autocomplete to your terminal. Article Challenging CSS Best Practices 原文链接:Challenging CSS Best Practices — Smashing Magazine

优秀的个人博客,低调大师

淘系自研前端研发工具 AppWorks 正式发布

经过了一年的迭代, 近 2 个月集中开发,AppWorks正式发布。 AppWorks地址:https://appworks.site/ AppWorks 是社区受到开发者广泛关注的 VS Code 套件,在 VS Code 插件市场有 2w+ 的下载量,是 VS Code 插件市场受开发者喜爱的百佳套件之一,多次登陆 VS Code 插件市场周/月趋势榜。在淘宝内部,AppWorks 日均创建项目 50+ 次,日均区块被使用 50+ 次,DAU 400+。 AppWorks 正式版本定位前端研发工具集,目标是让前端应用的开发更快更好更轻松 什么是工具集?工具集是指 AppWorks 包含了一系列面向前端研发各场景的工具(桌面客户端、编辑器插件、命令行工具等)。 为什么是更快更好更轻松?快、好和轻松是指前端研发过程中需要解决的三个核心问题:研发效率(要更快)、代码质量(要更好)、研发门槛(要更轻松)。 这篇文章将主要介绍 AppWorks 有哪些能力,以及如何使用这些能力解决这些问题的。 让开发门槛再低一点 好的工具应该是人人都用得起的。AppWorks 首要解决的问题是让人人都可以快速地开始前端研发。面对这个问题,AppWorks 提供的解法是 GUI 工具 + 海量可复用物料。 ▐开发工具箱 要开始前端应用程序的开发,首先需要安装必要开发工具和配置相应的开发环境: 必要的开发工具包括:Visual Studio Code、Google Chrome、Charles等等; 配置的开发环境包括:Node.js、npm、git等等。 VisualStudioCode地址:https://code.visualstudio.com/ Google Chrome地址:https://www.google.cn/chrome/ Charles地址:https://www.charlesproxy.com/ Node.js地址:https://nodejs.org/en/ npm地址:https://www.npmjs.com/ git地址:https://git-scm.com/ 为此 AppWorks 提供前端开发工具箱 ——AppWorks Toolkit来帮助开发者简单快速搭建前端开发环境。 AppWorks Toolkit地址:https://github.com/appwork4s-lab/toolkit Toolkit 是一个桌面客户端,开发者可以快速安装和使用。其核心能力有: 一键安装前端开发工具,这些工具包括但不限于:桌面客户端、编辑器插件、浏览器插件、命令行工具等等; 可视化管理前端开发工具,覆盖工具查找、安装、升级、卸载完整的软件生命周期管理; 可视化配置前端开发环境,这些配置包括但不限于:Node 配置、npm 配置、Git 配置等等。 更详细的说明可以参见:《前端环境》 阅读地址:https://appworks.site/pack/basic/toolkit.html ▐海量可复用物料 前端开发的第二步需要有海量可复用的物料。物料只有海量和可复用,才能正在地服务于前端应用的开发,其要求是: 海量:面向不同的终端有对应的跨端跨框架的物料; 可复用:需有较高的领域抽象度和可维护的代码质量。 为此 AppWorks 提供物料解决方案 ——AppWorks Material来满足这些要求: AppWorks 物料方案的特点有: 丰富且高质量的物料:从业务中抽象并经过多轮 Review,支持了 Fusion Design、Ant Design、Rax 等不同 UI 组件的物料; 可定制物料的能力:提供脚手架工具供不同团队快速定制业务领域的模板、区块和组件形成物料库; 低成本的文档站点:打通 Fusion 物料中心的托管,可以快速形成物料的站点和文档。 让好的开发体验促进效率的提升 好的工具应该能够提供好的开发体验并促进效率的提升。为此 AppWorks 提供了基于 VS Code 的前端研发套件 ——AppWorks Pack从以下几个方面来提高源码开发领域的体验和效率。 AppWorks Pack地址:https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks ▐极简的开发流程 Pack 将创建、调试和发布项目等操作通过插件的方式集成到了 VS Code 中,在编辑器内即可完成常见的工程操作以及与线上平台的对接。这些能力的集成使得开发者不需要频繁地在多个客户端、平台间进行切换和学习: ▐友好的可视化开发 Pack 提供了基于物料的可视化开发方式,基于AppWorks Material提供的海量物料,通过区块组装生成页面,一键添加物料到代码,物料的文档、示例都可以在编辑器中直接触达: 更详细的说明可以参见:《使用物料》 阅读地址:https://appworks.site/pack/basic/materials.html ▐强大的编码辅助 Pack 提供的编码辅助能力包括:代码提示(自动补全、信息提示和定义跳转)、代码重构和代码片段等功能,这些功能是覆盖多种编程语言(JavaScript、CSS)和多种 DSL(React、Rax)和多套研发框架(rax-app、ice.js)的。 以 Pack 提供代码重构功能为例,可以快速删除组件文件及组件文件所有的引用,同时删除掉由于组件属性所带来的不需要的变量: 更详细的说明可以参见:《代码补全》、《代码重构》 阅读地址: 《代码补全》:https://appworks.site/pack/basic/intelli-code.html 《代码重构》:https://appworks.site/pack/basic/refactor-code.html 让好的代码获得持续的关注 好的代码质量是软件工程的立身之本,好的开发工具应该能够为软件工程的代码质量提供保障。 为此 AppWorks 提供了代码质量解决方案 ——AppWorks Doctor来解决该问题。Doctor 提供了代码规范和项目质量评估模型,并结合编辑器来进行自动修复规范问题和产出项目质量评估报告;线上则提供数据大盘来全面了解团队和项目的质量情况,帮助开发者和管理者对代码质量保持持续的关注。 ▐代码规范 Doctor 通过@appworks/spec包来声明和约束代码规范。该规范遵循阿里巴巴前端编码规范,并结合了我们在ICE和Rax项目的最佳实践,包含 ESLint、stylelint、commitlint 及 Prettier 的相关规则,开发者可以很方便地与自己的前端项目进行结合。 地址: @appworks/spec:https://www.npmjs.com/package/@appworks/spec ICE:https://ice.work/ Rax:https://rax.js.org/ ▐质量分析 Doctor 建立了项目质量评估模型,该模型包含以下几个维度的分析: 代码规范:通过 @appworks/spec扫描代码,并提供一键修复功能(Doctor 提供了默认的配置,但用户项目的 @appworks/spec 配置优先级将更高)。 代码可维护度:通过typhonjs-escomplex扫描代码。复杂度评分低说明代码的判断逻辑复杂,可能质量低且难于阅读、测试和维护。 代码重复度:通过jscpd扫描代码。重复的代码一旦出错,意味着加倍的工作量和持续的不可控。将提示进行代码抽象和重构来减少冗余代码。 地址: typhonjs-escomplex:https://www.npmjs.com/package/typhonjs-escomplex jscpd:https://www.npmjs.com/package/jscpd 开发者可以在 VS Code 中对自己的本地项目进行质量检测,并自动修复规范问题,查看维护度和重复度方面的分析及优化建议: 亦或者针对依赖的基础库和框架进行自动化的升级,Doctor 也提供了人为监督和偶尔干预的方式: ▐线上治理 代码规范和质量分析让开发者可以在本地主动地去优化项目的质量。但对于团队来说,依然需要有被动的方式来促进项目的质量治理。例如了解重点项目的质量趋势情况,团队成员的质量情况,推进落地最佳实践或某些依赖包的升级等等。 在阿里内部,Doctor 通过对接 DEF 工程平台,在项目的发布部署环节收集项目的质量信息,并给开发者发送此次迭代的质量报告,由此来提升团队成员的质量意识。同时发布环节的质量检测是可控的,当遇到一些特殊情况时,例如我们发现了某个有重大缺陷或安全问题的代码或依赖包,可以中断此次发布流程: 通过对项目发布时质量情况的采集,Doctor 能够知道团队内项目和成员的质量概况和趋势,在AppWorks Data Platform上进行数据的展示和分析: 地址: AppWorks Data Platform:https://appworks.alibaba-inc.com/ 这里面目前开发经常使用的场景是在线上网站展示项目的质量信息,开发者可以通过跳转到 WebIDE 唤起 Doctor 插件完成一键修复和优化代码: 让提升代码编率可度量 广义的研发效率是指软件从需求到上线的完整过程中的投入和产出比。编程效率是指单位时间内有效的代码产出,编程效率是研发效率的重要组成部分。 AppWorks 目标通过定义编程效率的评估标准,产出团队的编程效率报告,分析影响编程效率的因素,制定提升编程效率的方案,对方案进行实施,观测效率数据变化,调整提效方案,最终达到提升个人和团队编程效率的目的。 现阶段,AppWorks 主要完成了编程数据的采集及统计。 ▐数据采集 AppWorks 通过 Time Master 插件来将自动追踪开发者在编辑器中的编码行为,Time Master 采集的数据包括开发者的编辑器使用时长及其在编辑器上针对代码文件的所有操作,例如打开文件、关闭文件、在代码文件上进行键入等; 最终可以做到统计开发者在每个文件、每个项目的详细编辑行为,例如: 停留时长 编辑时长 添加、删除的代码行数 添加、删除的字符数 键盘输入数 等等 在阿里内网环境,Time Master 将会把这些数据上报到 AppWorks Data Platform。 ▐数据分析 基于上报的数据,AppWorks Data Platform 可以提供个人、项目和团队编程数据的统计和分析: 项目大盘:提供具体项目的成员开发投入情况的数据统计及分析; 个人大盘:提供个人质效数据统计及分析,并与团队的整体情况进行对比; 团队大盘:提供团队整体的项目质效数据统计及分析,团队成员的质效概况。 未来展望 ▐编码辅助增强 从过往一年的用户使用数据来看,编码辅助功能依然是开发者使用最频繁的功能,对该功能准确率的提升会促进曝光率和转换率的提升: 转换率:使用量/曝光量 曝光率:曝光量/活跃用户数 从日常的用户访谈来看,开发者对基础库和框架的代码提示和代码重构有迫切的期待,诸如快速提取代码、快速变量命名、Inline Style to CSS 等操作,能为开发者提供愉悦的编码体验。未来 AppWorks 将持续增强编码辅助能力,并结合 Time Master 对相关功能的实际编码效率提升进行量化。 ▐项目质量治理 AppWorks 在上一个年度完成了 Data Platform 的雏形,打通了质量数据的上报、存储和统计链路。 但有数据只是提供了参考价值,基于数据做出行动,持续完善数据模型,使得指标数据提升,才能完成体现数据中心的价值。 未来 AppWorks 将通过线上网站和编辑器端信息的触达,让开发者和管理者了解基础库和框架的最新动态,配套升级工具,推动团队基础设施的升级。例如通过线上线下的联动,推进 React 15 升级到 17,Rax 核心库从 0.6 升级到 1.0 等等。 ▐工具箱能力完善 AppWorks Toolkit 的第一个版本中已完成快速安装必备工具和管理 Node 版本功能。未来将持续完善对前端工具和开发环境的管理和配置能力,成为前端开发的第一入口,帮助初学者快速开始前端开发,引导开发者用好工具,排查和修复开发环境问题。例如: 全局 npm 的管理 Git/SSH 配置 浏览器/编辑器插件管理 ▐编程数据价值挖掘 AppWorks 在上一个年度完成了编程数据的上报、存储和统计链路。未来 AppWorks 将主要通过 API 或离线数据分享的方式,让业务平台和工程平台利用编程数据进行研发效能的度量或分析,使得数据价值更大化。 写在文末 AppWorks 将持续重视用户体验,做开发者喜欢的、好用的工具。任何建议或意见,可以提交 issue 给我们:https://github.com/appworks-lab/site/issues 相关资料 AppWorks 官网:https://appworks.site AppWorks Toolkit: https://github.com/appworks-lab/toolkit AppWorks Pack: https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks AppWorks Material: https://appworks.site/materialCenter/fusion

优秀的个人博客,低调大师

Facebook 宕机事故系服务器配置问题导致

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 昨天 Facebook 及旗下产品 Instagram 和 WhatsApp 遭遇了严重的宕机事故,世界各地的 Facebook 用户都反馈称他们登录 Facebook、Instagram 和 WhatsApp 遇到一些问题,并且也无法发帖。 Facebook 发布消息承认了此次服务中断,虽然表示该事故与 DDoS 无关,但具体原因并未交待。 网络安全管理公司 Netscout 工程师 Roland Dobbins 认为此次宕机可能是一个 BGP 路由错误引起的,他表示:“BGP 路由从一家欧洲 ISP 偶然泄露到一家知名的中转 ISP,这家中转 ISP 随后将路由向上传送到一些对待节点或这家中转 ISP 的下游提供商,结果导致访问一些知名互联网公司的服务出现了短暂的异常。” 然而云监控公司 ThousandEyes 则认为这是由内部错误导致的,“因为 Facebook 返回了‘ 500 内部服务器错误码’”。 今天 Facebook 发推文正面回应了此次事故的原因,其表示正是因为服务器配置的改动而导致了此次宕机,并称目前问题已经解决,系统正在恢复。 值得一提的是,Facebook 此次宕机事故是知名宕机追踪网站 Downdectector 有史以来遇到的最严重的一次,Downdetector 的联合创始人 Tom Sanders 表示:“从持续时间来看,这是迄今为止我们在 Downdetector 于 2012 年推出以来所遭遇的重大一次宕机,我们的系统在此次事件中处理了来自最终用户的大约 750 万份问题报告。”

优秀的个人博客,低调大师

ThinkPHP系的两个东东OneThink和ThinkCMF

假设有这样一个命题:需要对一个已有系统进行移植,有没有什么系统是适合用来作为进行快速移植的基础的。能解决每个系统的基本问题,只需考虑相关业务逻辑问题。 OneThink是TP团队官方出品。 http://www.onethink.cn/ OneThink特性介绍: 1.基于ThinkPHP最新版本Thinkphp3.2。 2.模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。 3.文档模型/分类体系:通过和文档模型绑定,以及不同的文档类型,不同分类可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。 4.开源免费:OneThink遵循Apache2开源协议,免费提供使用。 5.用户行为:支持自定义用户行为,可以对单个用户或者群体用户的行为进行记录及分享,为您的运营决策提供有效参考数据。 6.云端部署:通过驱动的方式可以轻松支持平台的部署,让您的网站无缝迁移,内置已经支持SAE。 7.云服务支持:即将启动支持云存储、云安全、云过滤和云统计等服务,更多贴心的服务让您的网站更安心。 8.安全稳健:提供稳健的安全策略,包括备份恢复、容错、防止恶意攻击登录,网页防篡改等多项安全管理功能,保证系统安全,可靠、稳定的运行。 9.应用仓库:官方应用仓库拥有大量来自第三方插件和应用模块、模板主题,有众多来自开源社区的贡献,让您的网站“One”美无缺。 运行环境,要求PHP在5.3以上以支持名空间。 ThinkCMF 代码遵循Apache2开源协议,免费使用,对商业用户也无任何限制。 http://www.thinkcmf.com/ 是一款基于PHP+MYSQL开发的中文内容管理框架。ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本。 普通的CMS(内容管理系统)一般不能完成所有的需求,而因为CMS在ThinkCMF内部只是已一个应用的形式存在,所以使用ThinkCMF你可以用CMS来管理你的内容,用电影网站系统来管理视频,用电商系统来管理电商网站。这些程序不会影响,你可以模块化的增加或减少应用。 ThinkCMF自身层次非常清晰,逻辑也相当的严谨,特别是系统自带的protal应用非常适合PHP初学者使用。采用了国内优秀的开源php框架ThinkPHP使得ThinkCMF具备了优秀的性能以及良好的安全性。 V1.1.0增加 增加页面管理增加模板选择功能 agirl模板增加触摸左滑侧导航 增加文章图片集功能 增加微信公众号管理应用 增加用户注册邮箱激活支持 增加第三方账号权限控制 V1.1.0修复 修复清除缓存bug 修复服务器magic_quotes_gpc开启时,后台数据保存时多次转义bug 修复后台菜单开关按钮,图标不动态切换bug 后台支持多主题功能 修复角色禁止后依然能登陆bug 修复后台角色授权时,层级选择bug; 取消后台编辑器图片上传高宽限制 修复后台缩略图上传Not Found错误 优化后台登录方式 优化后台数据未更改时提示错误 优化后台菜单管理,和权限管理 优化安装逻辑,install可以删除 优化后台刷新按钮为刷新当前页

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册