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