跳转到内容
彼岸论坛

小天管理

管理员
  • 内容数

    15401
  • 注册日期

  • 最后上线

  • 得奖次数

    1

小天管理 发表的所有内容

  1. 根据新政策计算退休年龄,并通过翻页倒计时的方式感知时间流逝。 每天搭配腹黑吐槽 & 树洞投稿,缓解生活焦虑。 网址: https://daojishi.fun/
  2. 随着美国大选的白热化,预测市场 Polymarket 被大家熟知,已经吸引了近 10 亿美元进行美国总统选举结果的投注,占据了美国大选投注 85%的市场份额。 Polymarket 的创始人,今年 26 岁的 Shayne Coplan 让我非常感兴趣: Shayne Coplan 今年 26 岁,但却拥有了 12 年的加密领域经验: 他 14 岁时接触到加密货币,和朋友用矿机挖莱特币; 16 岁时参与了以太坊预售,是当年最年轻的参与者之一 18 岁进入纽约大学,第二学期就退学。3 年后创办了 Polymarket, 目前已经成长为最大的预测市场,甚至影响美国大选。 作为一名内容创作者、加密爱好者和父亲,我不禁好奇: Shayne Coplan 的成长环境是什么样? Shayne Coplan 的成长过程中被哪些事物所影响,让其 14 岁接触到加密、16 岁参与以太坊预售、22 岁创办 Polymarket? 有哪些部分是我们培养下一代 / 未来企业家时可以参考的? 于是我搜集了和 Shayne Coplan 相关的所有采访,找到一些蛛丝马迹,形成了一篇 7000 字的文章,欢迎阅读和分享: https://www.web3brand.io/p/polymarket-shayne-coplan 另外因为是人物故事的形式,这篇文章同样适合收听,于是我同时制作了一份有声版,同样欢迎收听,enjoy: https://www.xiaoyuzhoufm.com/episode/66e521835ca6d0ace3e0fd22
  3. 有时候在网上看到一些有趣的、可能有用的东西,想要收藏/保存一下,之后可能要用到。 在很久之前,我都是通过浏览器书签来达到这个目的的。后来由于有的是图片、视频等,用浏览器书签不太方便,后来我通过 QQ 群来达到这一目的。但是 QQ 群有个弊端,就是聊天记录时间长了会丢失掉。所以最后我的方案是使用 Telegram 的「 Save message 」这个功能。 Telegram 的「 Save message 」这个功能目前还挺好用的,就是有点不太好管理,一是没有一个基本的分类(我都是使用 tag 的方式来达到分类的目的),二是整体这还是一个以一个消息的方式进行保存,后面要找某个信息,还是过于依赖搜索了。 大家可有推荐的工具? 可以收藏任何类型的信息,例如,链接、图片、视频、文件等等 不要是 notion 、obsidian 那种笔记类型的,太重了,太麻烦了。 我现在的设想是通过 telegram 群组 + bot 的方式来实现,用 tg 来做收藏确实方便,在通过 bot 来进行管理,只是我不确定是否能做到一个群组只有自己能够访问,其他任何人不能访问,防止别人进去群组看到我的信息,我 tg 使用得挺久了,但是对这方面确实不了解,有知道的朋友吗?
  4. 目前有中银储蓄卡,不知道还要不要办 chill 日常消费也是八达通这样
  5. 登录提示: 400.出现了错误。 服务器无法处理该请求,因为其格式不正确。请勿重新提交该请求。这就是我们所知道的全部信息。 现在 chrome 浏览器也无法同步,油土鳖也没法看,挺吃瘪的。 查了查说是梯子问题,我知道有些 IP 可能有问题,但大多数应该是没问题的。按这个思路排查下去发现换流量挂梯子就能登录了。。。 这是个什么原理
  6. 最近搞了个双路 E5 AIO 。虚拟了个 win10LTSC ,分了 70 个核心,128G 内存,直通了 NVME ,还给 VGPU 的 P4 显卡。 用了几天,感觉只能轻度办公呢,重度负载,多开一些程序后,感觉跟裸机 win 区别还是很大的。 同配置裸机下,开 40 个指纹浏览器依旧流畅操作。这个开 40 个后,操作变得好卡。这时候感觉性能下降远不止 5%、10%这点。感觉只能达到 50%了 还有同样 pve 跑 win 的么,你们是怎么样的?
  7. 我发现 iPad 保护壳市场真的非常糟糕和同质化,基本上都是公模,各家都差不多,而不像 iPhone 保护壳一样百花齐放。我想找的 iPad 保护壳没找到一款满足需求的,请各位大佬推荐一下 我的需求: 全包裹 磨砂硬壳,至少背板是磨砂硬壳 不要,不要,不要正面的盖子,这玩意除了 Apple 官方的 smart folio 做的好看,别家的看着特别难受,但是 smart folio 又不是全包的 其实我的需求说白了就是 iPhone 官方的清水壳 clear case 放大成 iPad 的形状,然后最好把材质从透明塑料改成磨砂塑料,我在淘宝找了好几天了,发现居然完全没有这样的产品,找到过背板磨砂硬壳的,但他非要画蛇添足加个盖子,给我看的太难受了 求求各位大佬推荐 iPad 保护壳!🙏
  8. 本人做 JAVA 开发一年多了,技术栈是单体架构那一套 还有 es ,会一些 linux 、docker 和 jenkins 的部署。 从做项目开始基本是啥也不会,用过若依和芋道两个框架边做边学,做的都是电商类的项目。 前段时间没什么需求了,项目也不怎么需要维护,然后自己看了本设计模式的书,并用状态模式重新设计了核价模块。 现在很迷茫,不知道学什么中间件。之前自学了 python 由于没有应用场景也忘的差不多了,自学了 go 语言也就写了一个爬虫脚本也忘的差不多了。其他的一些中间件也是因为没有应用场景基本上学完就忘,顶多知道这些概念,以后遇到某些场景用该技术实现会更好。 求各位大佬帮小弟分析一下折腾一些什么东西比较好。
  9. 快递员打电话说放驿站了,没直接本人签收(小区很小,三轮车就在楼下停着),外包装盒是挤扁的,watch 盒子脏手印很多,两个封口贴也是开启的(售后专员说封口贴是 jd 自己贴的,那苹果本来的包装盒也是直接可以打开不封口的吗?),直接售后退了 https://mjj.today/i/jC6g3J https://mjj.today/i/jC6leI https://mjj.today/i/jC6G06
  10. 打算中秋节给家人做几道菜,平时没做过菜,别太难了。
  11. 新建电源计划,命名为“Low”: 电源接入时:永不睡眠 修改高级设置:处理器状态,最高 5%;接入电源时永不休眠。 Process Lasso:选项-电源-Idle Saver 当电脑闲置 30 分钟时切换到电源计划“Low” 解释一下: 当 30 分钟电脑无任何操作的时候,自动切换到 Low 电源计划,此时 CPU 最高频率只有 5%,笔记本大约 400MHz 。此时能耗是很低的,适合长时间挂机、下载、更新、杀毒…… 如果你觉得 5%太低,也可以把 CPU 最高频率设到 99%,就是不用睿频,只有默频。 只要你鼠标键盘一动,或者远程桌面一接入,自动恢复到之前的电源计划,比如“平衡”“高性能”。 非常时候需要长期开机的场景
  12. 我的笔记本电脑存在一个问题———键盘容易进灰尘,而厂商的除尘服务因为设计结构问题并不包括键盘,也就是说键盘的灰尘积累多了是不好清理的。 于是上了一个键盘膜,虽然解决了灰尘问题,但影响被动散热,日常电脑温度提升了 2-3 度。此外键盘膜还有一个问题,就是合上盖子次数多了容易在屏幕上留下膜印,后来的解决方案是在合盖时插入一张 A4 纸,但这样就更影响散热了。 因此,这三种需求该怎么平衡呢?有没有更加便捷的解决方案呢?感觉实在是一个难题。
  13. iOS17 开始已经从 100 ,改成 2000 条了。 提升 20 倍。 黑点又少了一个。虽然但是,爱打电话的商务人士大部分早已放弃 iPhone 了。
  14. 我的谷歌开发者账号注册了也有六七年了,前段时间提示进行地址和银行信息校验。 然后,我用了居住证、身份证、水电缴费记录都不行。 我不清楚什么原因,先用中文联系了他们。然后给我说,审核身份信息的团队是外国人。 跟外国人邮件沟通,他们的回复跟官方文档差不多。 问题是从他们的回复和验证失败的信息,你根本找不到具体的错误的理由。 后来经过多次尝试联系到了在线的支持人员,然后我发现这家伙只是起到一个中转作用。 你告诉他问题,然后他甩给你一个链接,说,你可以联系这个团队... 至于银行信息的校验,我从工商行导出了对账单,上传依然无法通过。 现在谷歌账号里还有 34 美元收入,外加账号注册费 25 美元。损失了 70+美元... 当然,最可惜的还是账号。 我比较想知道的是有其他开发者遇到相同的情况吗?任何通过校验的? 还有就是,在目前的就业环境下,独立开发的路子似乎又少了一条,gg
  15. 想请教下 10G 网络 IO 有瓶颈吗?有一个需求,需要从同一内网的另一台机器上读取数据,如果我用 10G 网卡连接两台机器,客户端一次性读取一定量小文件(一次几千个,每个小于 1M )的话,会有 IO 上的问题吗? 服务器可以用 NFS SMB 或者其他的方式共享数据、都是 NVME 存储的前提下。
  16. 团队内招聘需求,简历直达组长! Base:北京、深圳、珠海(15%税收优惠) 急招,各种职级都需要,prefer(2-1/2-2),全程保密 职位描述 1 、负责国际电商研发过程的能力建设,通过平台能力提供给研发从开发、测试到发布上线的体验和效率; 2 、能够深入和理解核心业务场景,参与研发流程标准化方案调研与制定与变更规范的落地; 3 、建设业务研发效能的度量和洞察机制,决策改进和系统优化,引导研发效能的持续提升; 4 、关注行业优秀做法,深刻理解和挖掘研发提效发展趋势。 职位要求 1 、本科及以上学历,计算机、通信等相关专业,有国际化经验优先,工作城市可选北京、深圳、珠海; 2 、扎实的计算机基础知识,较强的逻辑理解能力和学习能力; 3 、深刻理解计算机原理,有良好的数据结构和算法基础; 4 、熟悉 MySQL 、Redis 、消息队列等常用基础组件,熟悉微服务,熟悉 Linux 开发环境,熟练掌握至少一门服务端语言; 5 、熟悉互联网架构体系,对微服务拆分、服务治理、负载均衡、流控等有较好的理解和实践,有一定的系统架构设计经验; 6 、积极乐观,责任心强,工作认真细致,具有良好的团队沟通与协作能力; 7 、热爱编程,有较强的学习能力,有强烈的求知欲、好奇心和进取心,能及时关注和学习业界最新技术。 感兴趣的可以发我邮箱:MTE3Mjk2MzM0M0BxcS5jb20= 或者 vx 联系我:emh1aWNoZW5sb3Zl
  17. 永康路 37 弄老弄堂的单间,不到十平,独立卫浴,洗衣机油烟机热水器冰箱都有,有一张床一张桌子,之前实习租的,现在实习结束了一年的合同还有很久,转租出去直接跟房东重新签合同就行,房租谈的是 3200 一个月
  18. https://github.com/StevenSLXie/early_retirement_in_sg/blob/main/%E5%9C%A8%E6%96%B0%E5%8A%A0%E5%9D%A1%E6%8F%90%E5%89%8D%E9%80%80%E4%BC%91.md
  19. 增加了对包括思维导图在内的十九种图表绘制的 Markdown 语法支持 提供所有图表的黑白配色主题(Ctrl + Alt + Y) 所有十九种图表可以在 PDF 文件中原样下载输出。 详细十九种绘图参见: https://www.zybuluo.com/ghosert/note/2560850
  20. 你们有遇到吗,咋个取消,我看设置有 url 屏蔽,但是微信支付拉起的窗口不知道 url 有什么办法能屏蔽吗
  21. SaaS 产品集成 Stripe 支付的一些坑 最近在给自己的 SaaS 产品 PPResume 集成支付,调研了很久,最终还是决定用 Stripe ,集成过程中又发现了一些坑,分享出来,供后来者参考。 四种集成方式的选择 Stripe 官方提供四种主流的集成方式: payment links:最简单的一种,集成成本最低,时间最快,但是可定制化程度最低,比较适合简单的业务 checkout ,又分为 hosted checkout 和 embedded checkout 两种: hosted checkout:用户在 checkout 时,需要重定向到 stripe 的网站,好比说你在淘宝买东西付款时,需要重定向到支付宝或者微信支付的网站,用户流程更长一些,集成成本也不算高,比较简单 embedded checkout:stripe 提供一个内嵌的 form ,可以直接嵌入到你的网站中,这样用户在 checkout 时,不需要重定向到 stripe ,用户体验会更好一些,集成成本比 hosted checkout 高很多,我个人开发过程中的一个 demo elements:定制化最强的一种,同时也是成本最高的,所有的元素,诸如信用卡输入框这些均可定制,适合高度复杂的业务,不建议普通用户使用 Next.js 官方有一个 demo,可以直观对比下 payment links 、checkout 和 elements 三种方式的区别 我个人建议: 如果是极其简单的业务,或者开发时间、能力有限,用 payment links 就行,比如说你在网上卖电子书、软件 license ,放个 payment links ,收到 payment 后,给 customer 自动或者手动发送电子书、软件 license 就行了; payment links 还有一个显著的优点,就是因为 payment links 本身提供的是一个 URL ,你可以把这个 URL 分享到各种平台,就如我们日常在用的二维码收款码一样 如果略复杂一些的业务,比如有多种 pricing plan ,可以用 checkout ,想要最佳的用户体验,又能承担高一些的开发成本,可以用 embedded checkout ,但是 checkout 有个关联 customer 的小坑,后面说 elements 不建议采用,开发成本过高了 Pricing Table 的问题 Stripe 提供一个 no code 的 pricing table,可以方便的在自己的网站上嵌入一个 pricing table 。但是 Stripe 的 pricing table 有一个问题,就是默认点击 Subscribe button 的时候,是直接定向到 stripe 的 checkout 页,而对一般的 SaaS 产品而言,Pricing Table 的 CTA button 针对用户是否已经登录,要定向到不同的页面: 如果用户尚未注册登录,则直接重定向到用户的注册登录页,引导用户注册登录 如果用户已经登录,则按照正常的流程,重定向用 subscribe 付款页面 Stripe 的 Pricing Table 另一个问题就是 UI 的可定制性还是差了一些,没有提供单独的 CSS 定制,可能和产品本身的 UI 风格有较大差异。 海外有一个专门的 Pricing Table SaaS 产品,部分解决了这个问题,可以参考一下。实在不行,Pricing Table 就还是自己写的,不难的。 Checkout 最好关联 Customer Stripe Checkout Session 在创建 时,接收一个 customer 参数,该参数是 stripe 内建的 customer 的 id ,如果创建 Stripe Checkout Session 时(stripe.checkout.sessions.create),没有提供这个 customer 参数,那么 Stripe 的后台会将所有 email/credit card/phone 相同的 customer 统一归组成一个 guest customer ,这个 guest customer 仅仅在 Stripe Dashboard 中可见,而在 Stripe API 中是不可见的,并且 guest customer 没有办法对接 Customer Portal (关于 Customer Portal ,见后文)。 我个人建议: 在创建 stripe checkout session 时,先创建 stripe customer ,但是不要用一个 customer email 创建多个 Stripe customer ,最后确保一个 customer email 创建并且仅创建一个 Stripe Customer ,code 类似于这种: /** * Retrieves or creates a Stripe customer with logto user's email. * * This function first attempts to fetch the user's context from the Logto * client using the provided request. * * Then checks if a customer already exists in Stripe with that email, if * existed, return that stripe customer, otherwise a new customer is created in * Stripe. * * @param {NextRequest} request - The incoming request object from Next.js. * * @returns {Promise<Stripe.Customer | null>} A promise that resolves to the * Stripe Customer object if found or created, otherwise null. */ export async function getOrCreateCustomer( request: NextRequest ): Promise<StripeServer.Customer | null> { const stripe = getStripeServer() try { // find a way to get a customer email from your auth system const customerEmail = 'customer@ppresume.com' // This is not likely to happen as all logto users should have a valid email if (!customerEmail) { return null } const customers = await stripe.customers.list({ email: customerEmail, limit: 1, }) if (customers.data.length === 0) { return await stripe.customers.create({ email: customerEmail, metadata: { logtoUserId: user?.claims!.sub, }, }) } else { return customers.data[0] } } catch (err) { return null } } Customer Portal 集成的两种方式 Stripe 提供一个 no code 的 Customer Portal,可以让用户自行管理支付相关的数据,比如支付方式,订阅记录,invoices 等等,这些东西自己实现,又繁琐又无聊,因此如果支付系统能提供相应的解决方案,还是很方便的。 据我所知,Stripe 和 LemonSqueezy 是提供 customer portal 的,而 Paddle 是不提供的(有一个专门的 SaaS 产品就是给 Paddle 提供一个 Customer Portal )。 集成 Stripe Customer Portal 有两种方式: 一种是通过 no-code 的方式,在 Stripe Dashboard 中直接 activate customer link ,拿到一个 URL ,将这个 URL 放到你的网站中,用户访问这个 URL ,就可以用验证码登录来访问或管理支付相关的信息 另一种是通过 API 的方式,在用户访问 customer portal 时,通过 API 临时创建一个 customer portal 的 URL ,然后把这个临时 URL 返回给用户,用户通过这个临时生成的 URL 访问 customer portal ,代码大略如下: /** * Creates a Stripe customer portal session and redirects user to that portal * * It first retrieves or creates a Stripe customer based on the incoming * request, then generates a session for the Stripe Billing Portal, and finally * redirects the user to the Stripe Billing Portal. * * The major benefit of using API to create a customer portal with customer * attached over plain customer portal link provided from stripe dashboard is, * user won't need to manually sign in for API created customer portal. * Basically, when you create a customer portal with API, it will generate a * short-lived URL for user and this URL do not need user to sign in. * * From [Stripe]( https://docs.stripe.com/api/customer_portal/sessions): * * ``` * A portal session describes the instantiation of the customer portal for a * particular customer. By visiting the session’s URL, the customer can manage * their subscriptions and billing details. For security reasons, sessions are * short-lived and will expire if the customer does not visit the URL. Create * sessions on-demand when customers intend to manage their subscriptions and * billing details * ``` * * @param {NextRequest} request - The incoming request object from Next.js. * * @returns {Promise<Response>} A promise that resolves to a redirect response * to the Stripe Billing Portal, or a JSON response indicating that the customer * was not found. */ export async function GET(request: NextRequest) { const stripe = getStripeServer() const customer = await getOrCreateCustomer(request) if (!customer) { return Response.json( { message: 'Customer not found', }, { status: 404 } ) } const customerPortalSession = await stripe.billingPortal.sessions.create({ customer: customer.id, return_url: getAbsoluteUrlWithDefaultBase(routes.pages.settings.billing), }) return Response.redirect(customerPortalSession.url, 303) } 第二种方式最大的好处就是,用户不必通过验证码来登录 customer portal ,而是可以直接访问,用户体验要好太多。 Stripe Webhook 实现 用户下单之后,系统需要满足用户的下单需求,比如如果是实物电商,那么商家需要打包发货,而如果是 SaaS 这种虚拟服务,则一般需要赋予用户相应的 Pro 权限,这个过程叫做 order fulfillment。 Order fulfillment 需要实现 webhook: Webhooks are required You can’t rely on triggering fulfilment only from your Checkout landing page, because your customers aren’t guaranteed to visit that page. For example, someone can pay successfully in Checkout and then lose their connection to the internet before your landing page loads. Set up a webhook event handler to get Stripe to send payment events directly to your server, bypassing the client entirely. Webhooks are the most reliable way to know when you get paid. If webhook event delivery fails, we retry several times. 所谓 webhook ,简单讲,就是在你的系统中向公网暴露出一个 API endpoint ,当用户通过 Stripe 下单成功后,Stripe 给这个 API endpoint 发送一个 POST 请求,请求 event 里包括详细的下单付款信息,你的系统收到这个信息后决定怎样给用户赋予相应的权限等等。 Webhook 实现中有一个小坑,就是 Stripe 不保证 event 的时序性,也不保证请求的唯一性——事实上,公网的网络请求中也是没有办法做到这一点的,因此你的 Webhook 实现中,看需求,如果对数据一致性要求比较高,最好实现幂等性。具体细节不在这里讲啦。 后话:集成 Stripe 花了小一个月的时间,Stripe 的开发体验非常不错,但是产品矩阵很庞大,新手往往比较容易困惑,再就是有一些隐藏的坑,我遇到了一些,随手记了下,发上来当一个备份吧。 集成支付系统还是蛮耗体力的一个活,后面有时间的话,打算写一篇《 Stripe 101:The Missing Tutorial for Indie Makers 》。 最后打个小广告哈,我的 SaaS 产品 PPResume 去年上线后又经过一年的打磨,最近终于要推出付费计划啦,所有在支付正式上线之前注册的用户,都将获得一年内 50% off 的折扣,欢迎注册体验。
  22. 黑神话就剩一个杨戬没打了,昨天去网鱼发现黑神话云同步一直失败,网上的办法基本上都用了一遍(包括换地区,离线模式再上线等),也换了加速器和代理都不行。然后我就想去 steam 网站上单独下载存档放到本地,还是提示下载失败。 第一个文件下载提示服务不可用,第二个文件能正常下载,第三个文件报错 有什么好的解决方法吗?
  23. 请不要说 covid 请不要说原神,那只是一款游戏,而且其中包含多少中国文化的东西我不知道 请不要说猿神,它确实都是中国文化,但是毕竟只是一款游戏
×
×
  • 创建新的...