1作者: fahimfaisaal7 个月前
一年前,我构建了这个软件包,但从未与任何社区分享。在这里分享,希望将来能对你有所帮助。<p>如果你喜欢的话,别忘了点个星并留下你的反馈哦。
2作者: MongooseStudios7 个月前
我是一个自学成才的开发者,为了能靠写代码挣钱,我拼命努力,忍受了多年在多家公司听到的“内部晋升”的谎言。 自从去年11月被裁员以来,我一直在找工作,现在我真的受够了。每个人都在寻找拥有X年经验、熟悉Y框架的“独角兽”,如果你没有完全符合这些条件,那就别申请了。与此同时,FAANG、微软和英特尔还在不断地裁员。 我仍然热爱编程,自从被裁员以来,我大部分的非“投简历和思考人生”的时间都花在构建项目上。但是,一想到要为另一家由脑残高管运营的公司工作,他们想把AI塞进所有东西里,或者再经历一次来自人力资源部的贝基(她最擅长的技术可能就是用Excel)问我“你为什么想在这里工作”,我就感到厌恶。 我已经开始告诉那些有荒谬的、会议数量超多的招聘流程和单向视频面试的人,我没兴趣。我发现自己对做几乎任何事情都感到兴奋,除了在一个公司里参加又一个“规划周”,而这家公司还信誓旦旦地说他们在“实践敏捷”。 我非常愤怒,因为公司决定把我们踢出局,把我们的工作外包给他们能找到的最便宜的国家,或者外包给本周提供最美味的免费蜡笔的AI公司。我非常愤怒,因为每个人都在越来越多地推动RTO(重返办公室)的无稽之谈,因为他们的经理们在工作上做得太糟糕了,他们不知道如何用Slack消息打断我们,来代替当面打断我们。我既愤怒又疲惫。 还有其他人吗?
1作者: flfljh7 个月前
# 在 HarmonyOS 服务卡片中访问应用数据 ### (1) 创建服务卡片 创建基于 ArkTS 的卡片后,项目将生成以下与卡片相关的文件: - 卡片生命周期管理文件 (`EntryFormAbility.ets`) - 卡片 UI 文件 (`WidgetCard.ets`) - 卡片配置文件 (`form_config.json`) ### (2) 配置 module.json5 参考字段文档: ``` &quot;extensionAbilities&quot;: [ { &quot;name&quot;: &quot;EntryFormAbility&quot;, &quot;srcEntry&quot;: &quot;.&#x2F;ets&#x2F;entryformability&#x2F;EntryFormAbility.ets&quot;, &quot;label&quot;: &quot;$string:EntryFormAbility_label&quot;, &quot;description&quot;: &quot;$string:EntryFormAbility_desc&quot;, &quot;type&quot;: &quot;form&quot;, &quot;metadata&quot;: [ { &quot;name&quot;: &quot;ohos.extension.form&quot;, &quot;resource&quot;: &quot;$profile:form_config&quot; } ] } ] ``` ### (3) 特定于卡片的配置 配置位于 `resources&#x2F;base&#x2F;profile&#x2F;form_config.json` 中。 参考字段文档: ### (4) UI 开发和参数处理 卡片 UI 代码位于 `ets&#x2F;widget&#x2F;` 中。参数接收逻辑: ``` let storageUpdateByMsg = new LocalStorage(); @Entry(storageUpdateByMsg) @Component struct WidgetCard { @LocalStorageProp(&#x27;diffExamDay&#x27;) diffExamDay: number = -1; } ``` ### (5) 卡片生命周期和数据传递 - 初始化逻辑在 `EntryFormAbility.onAddForm` 中(例如,将卡片 ID 传递给 WidgetCard) - 更新在 `onUpdateForm` 钩子中处理 ### (6) 在卡片初始化期间访问应用数据 #### 6.1 通知应用更新卡片数据 ``` postCardAction(this, { action: &quot;call&quot;, abilityName: &quot;EntryAbility&quot;, params: { method: &quot;upDiffExamDay&quot;, formId: this.formId, }, }); ``` *时序问题解决方案:* 监视 `formId` 的变化,而不是使用 `aboutToAppear()`: ``` @LocalStorageProp(&#x27;formId&#x27;) @Watch(&#x27;updateFormId&#x27;) formId:string = &#x27;&#x27;; updateFormId() { postCardAction(this, { action: &#x27;call&#x27;, abilityName: &#x27;EntryAbility&#x27;, params: { method: &#x27;upDiffExamDay&#x27;, formId: this.formId } }); } ``` #### 6.2 应用端数据处理 在 `EntryAbility.onCreate` 中: ``` onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.callee.on(&#x27;upDiffExamDay&#x27;, upDiffExamDayCall); } const upDiffExamDayCall = (data: rpc.MessageSequence): MyParcelable => { let params: Record&lt;string, string&gt; = JSON.parse(data.readString()); if (params.formId) { PreferencesUtil.putSync(&#x27;formId&#x27;, params.formId) const diffExamDay = UserCacheManager.getDiffExamDay(); diffExamDay === -1 ? getHomePageData(params.formId) // 如果不可用则获取数据 : Utils.updateDiffExamDay(params.formId); // 直接更新卡片 } return new MyParcelable(1, &#x27;success&#x27;); }; ``` *更新卡片数据:* ``` // 导入所需模块 import { formBindingData, formProvider } from &#x27;@kit.FormKit&#x27;; updateDiffExamDay(formId: string) { const diffExamDay = UserCacheManager.getDiffExamDay(); let formMsg = formBindingData.createFormBindingData({ &#x27;diffExamDay&#x27;: diffExamDay }); formProvider.updateForm(formId, formMsg) .then(() => console.log(&#x27;Update success&#x27;)) .catch((error) => console.error(&#x27;Update failed:&#x27;, error)); } ```
1作者: burnt-resistor7 个月前
GFiber 我们迫不及待地想为您提供服务——但目前还不行。 对于这次误会,我们深感抱歉。由于系统错误,您收到了“服务可用”的通知。很遗憾,Google Fiber 目前在您家还不可用(我们也很难过)。 当您的地址符合服务资格时,我们会向您发送邀请,以便您注册。 感谢您的耐心等待,再次为给您带来的困惑表示歉意。 感谢您对 GFiber 的关注! ——GFiber 团队
1作者: taiyakihitotsu7 个月前
您好。 我创建了一个 TypeScript 包,通过完全在类型层面实现一种名为 CionLisp 的脚本语言,来实现类似依赖类型的功能。通过从运行时值中提取类型,它能够实现 TypeScript 原生不支持的类型验证。<p>利用这个包,我实现了几个功能,包括:<p>- 除以零检测<p>- 长度索引向量(类似于 Idris 中的 Vect n)<p>- 安全访问器(类似于 Lenses)<p>此外,任何可以用 CionLisp 表达并在类型层面解析的内容——例如通过正则表达式进行电子邮件验证——都有可能进行类型检查。<p>请注意,这仍处于 alpha 阶段,请谨慎使用。<p>感谢您的关注。
1作者: arwong097 个月前
我现在 36 岁了,非常怀念以前和兄弟们一起熬夜打扑克牌的日子。<p>现在我们都忙于家庭和事业,根本不可能凑在一起打牌了。<p>所以,我有了开发“回合制扑克”的想法,就像“Words With Friends”那样,但玩的是德州扑克。<p>轮到你行动时,会收到推送通知,这样我们就可以在火车上、会议间隙、厕所里等等地方玩了。<p>它完全基于 Expo + React Native + Firebase 构建,后端使用 NextJS。<p>我还在 React Native 上编写了一个自定义动画引擎来渲染扑克牌动画。<p>希望你们喜欢!
1作者: whatbackup7 个月前
我创建了一个简单的 WireGuard 配置生成器,用于网状网络和星型网络。<p>目标是: - 安全,仅客户端 - 从种子生成,以重现密钥生成过程 - 简单的自托管 - 开源 (MIT 许可证)<p>它尚未完成,我希望在某个时候添加一些功能,并进行安全审计(主要是为了学习)。<p>我非常欢迎您的反馈。
4作者: lendacerda7 个月前
News-Hook 是一款工具,只需通过提示,即可在任何现实世界中设置 Webhook。<p>你可以这样写提示:<p>“当 [电影] 获得烂番茄评分时通知我” “当 [传闻] 被证实或否认时告诉我” “提醒我关于美国和巴西之间的任何关税新闻”<p>它的工作原理如下:<p>- 你编写一个提示,说明你想要了解的内容。 - 像往常一样设置 Webhook,包括 URL 和有效载荷。 - 完成。<p>如果想通过编程方式实现,可以使用完整的 API。 我们开放了 Swagger-UI,方便你查看。<p>欢迎提供反馈、我未曾想到的用例,以及对设计或安全性的批评。<p>谢谢!