Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Delton Ding
@dsh0416
高级会员
第 21472 位会员 / 2015-10-10

町田 ⇄ 上海
38 篇帖子 / 303 条回帖
302 关注者
14 正在关注
5 收藏
日常工作职业划水,编程讨论菜鸡互啄
打赏作者
GitHub Public Repos
  • ruby-relearning 104

    《Ruby 再入门》:一本关于重新思考编程入门的教程

  • quantum-i-ching 96

    A Quantum 爻 System Implementation for Divination

  • iptv-utils 32

    A Shanghai Telecom IPTV Livestream Utility

  • euc-jp 15

    EUC-JP Encoding and Decoding Library for Dart Language

  • kg-capture 8

    capture the Lyrics screen of WeSing

  • petri-editor 8

    An Visual Editor for Petri Net

  • blog 2

  • eye-tracker 2

    Yet another some random neural network experiments

  • yetanother-fm 1

    Yet Another FM

  • perfcat 1

    An open-source and free alternative to a Caniformia performance monitor tool, which collect and c...

More on GitHub
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • [上海][2023 年 12 月 26 日] Ruby / Rails 线下聚会召集 at 2023年12月25日

    好!好久没办了!

  • Rails 编译成二进制,理论上存在破译的风险么,谢谢大家不吝赐教~~~ at 2021年07月17日

    可以编译到 YARV 字节码。但实际上还是可以反编译的,虽然现在还没有完整的工具链来做反编译。对于大型项目的字节码打包现在 @darkkowalski 有一个在进行的 proposal。

  • 又踩了个 open-uri 的坑,老库的 API 有时候真是摸不着头脑 at 2021年07月15日

    来 open 在请求小文件的时候返回 StringIO 对象

    原理上,这对于一个默认直接返回 String 的 API 是一个很难处理的问题。因为假设所有情况都返回 String 的话,读取到 Content-Length > Body Size 的话就意味着要继续读取,直到读完为止才能返回。而理论上 HTTP 的 Content-Length 上 GB 上 TB 都没有问题,所以大多数库的返回是默认 StringIO,根据你具体需要不需要读,甚至需要不需要流式读取自行决定怎么处理。

  • [上海][2021-07-20] Ruby 聚会召集 at 2021年07月15日

    报名

  • [不懂就问] Rails 父子关系查询 at 2021年07月15日

    这样做总感觉性能上会出事... Postgres 的话有 recursive cte query 可以一句 SQL 查出来,还会复用内存结构,比较快。Rails 上有对应的 ORM 库,可以找一下。

  • ractor 跑一段简单代码,百分百崩溃 at 2021年07月12日

    Ractor 的 Experimental 确实指的就是楼主提到的这种情况。

    仔细看了一下楼主提的 Issues 的后续 https://bugs.ruby-lang.org/issues/17612

    问题出在浮点数转字符串的实现 https://github.com/ruby/ruby/blob/3acc81d9e41b18380b9e0168fe2b5e5e0c727256/missing/dtoa.c 没有正确处理多线程下数据竞争的情况

    这个代码是一段经典的开源代码 gdtoa (David M. Gay's floating-point conversion library) 的修改。 Ractor 中 Float 是一种可以直接传递的 Number,默认是线程安全的。但是因为这个依赖库中这里没有处理,所以导致了问题。

    Ractor 现在这个 Experimental 状态基本就是在测试这些边缘情况的问题,去年 MJIT 的测试状态差不多也是这样的。写着写着就 SegFault,然后一调试都是一些很怪的小问题。这个问题在 Ruby 3.0.2 中被修复。

  • [上海][12.3,12.4] RubyConf China 2021 Hotwire 开始售票 at 2021年07月06日

    这个提议好,可以

  • [杭州] Fork AI 招聘 Ruby 工程师 2 名 at 2021年06月25日

    确实是写错了

  • 记录一下 dashboard 性能优化 (10s->1ms) at 2021年06月18日
    # frozen_string_literal: true
    
    # ApproximateCount count on large Postgres tables
    # designed to be `extend` into inheritance classes of ActiveRecord::Base
    # Example:
    # User.approximate_count
    # # (1.3ms) EXPLAIN (FORMAT JSON) SELECT "users".* FROM "users"
    # # (0.8ms)  SELECT COUNT(*) FROM "users"
    # # => 0 
    #
    # User.where('created_at > ?', 7.days.ago).approximate_count
    # # (1.6ms)  EXPLAIN (FORMAT JSON) SELECT "users".* FROM "users" WHERE (created_at > '2021-06-11 15:20:49.870311')
    # # (0.8ms)  SELECT COUNT(*) FROM "users" WHERE (created_at > '2021-06-11 15:20:49.870311')
    # # => 0
    module ApproximateCount
      def approximate_count(threshold=10_000)
        explain_sql = "EXPLAIN (FORMAT JSON) #{all.to_sql}"
        result = self.connection.execute(explain_sql)[0]["QUERY PLAN"]
        json = JSON.parse(result)
        val = json[0]["Plan"]["Plan Rows"].to_i
    
        return val if val > threshold
        self.count
      end
    end
    
    class ApplicationRecord < ActiveRecord::Base
      extend ApproximateCount
      self.abstract_class = true
    end
    
    

    施加了一点点魔法

  • 项目空闲期间大家一般都干什么 at 2021年06月15日

    这个发在 Rails 板块是不是有点...

  • 请问现在学习 Ruby 没有可以用以入门的教程了吗 at 2021年06月14日

    镐头封面那本书太老了,最新的也才适配到 Ruby 2.0。

  • Crystal 1.0 了 at 2021年06月08日

    是并行执行的 Boehm GC...

  • Crystal 1.0 了 at 2021年06月05日

    确实,这个堆内存管理一塌糊涂,连我一直骂的 Go 语言的 GC 都能比它快... 比校建议索性加上 nogc 的 flag,多实例然后每几个小时重启一下程序比校可靠。

  • Crystal 1.0 了 at 2021年06月05日

    2021 年一门需要 GC 的语言,默认使用不做任何额外优化的 Boehm GC,还说自己已经跳到 1.0 版本了,真的是闻所未闻。真要说什么 runtime 能那么猛,恐怕只有 Unity 里用的 Mono 了,老 Unity 游戏长时间运行都会 Stop the World,但人家 2019 年至少也加上了 Incremental 的支持...

    https://github.com/crystal-lang/crystal/blob/e0f7392ae4cf2485f37008bc18f656e77287c2bb/src/gc/boehm.cr

  • Puma worker 有内存回收/重启机制吗? at 2021年06月02日

    随着启动时间越来越长,内存不断增长,但如果慢慢稳定到一个定值的话,可能要怀疑内存碎片的问题,Ruby 2.7 开始引入 GC.compact 来回收碎片,但是代价非常大,会暂停好几秒业务,只能在没有业务的时候手动触发。如果每天都在线性增长的话,应该是 memory leak 了,需要排查程序中的 bug。万不得已,workers killer 定时重启。

  • 深圳的房价到底能涨到啥程度 at 2021年05月26日

    广场协议...

  • 看完《提问的智慧》受益匪浅! at 2021年05月23日

    https://letmegooglethat.com/?q=dataType%3A+%22script%22

    点开第一条:https://api.jquery.com/jquery.ajax/

  • 大家有没有留意过 Kernel::require 这个 API 的性能问题 at 2021年05月20日

    Ruby 当 CLI 工具用每次都要手动禁用掉 standard library,否则光 standard library 加上启动就要差几秒。

  • 有人用 TruffleRuby 和 Rails 在生产环境吗? at 2021年05月19日

    TruffleRuby 性能上要比 CRuby 要好很多指的是 CPU-bound 的计算密集型应用。先不用跑 Rails,基本上 Rack-based Web 服务器都很难从中受益。

  • 此贴关闭 at 2021年05月19日

    久闻贵司大名(指在 Aston Martin AMR21 的涂装上见过这间公司的 Logo

  • RubyConf China 2021 Hotwire 讲师征集 at 2021年05月18日

    按照我们去年的经验,讲者需要提前录制视频避免演讲过程中的网络问题;然后我们会提前调试,然后在视频播放完毕前 15 分钟线上 zoom 连线讲者准备直播的 Q&A 环节。但如果是远程观众的话,去年是通过 YouTube 和国内 UCloud ULive 进行的直播,今年考虑到酒店场地网络问题,目前无法保证会有提供线上的观众直播的计划。

  • 请问出现这个 A LoadError occurred in #:这种类似问题怎么解决?(不讨论与话题无关的东西) at 2021年05月18日

    #23 你改的代码本来就是你本地的 clone,不管怎么改都不会直接出现在真实项目里... 看这个 RubyMine 的项目结构顶上的项目名重命名感觉是有问题的,你需要确定你的 RubyMine 正在读取你正确目录下的代码

    #8 的错误应该是没有在新项目下执行 bundle install 安装依赖,所以没办法 bundle exec xxxxxx

    #12 的错误你应该要看一下别的能工作的地方是怎么调用 redis 的,在业务代码中应该是不会出现新的 redis 连接的,这里明显是新建了 redis 连接,可能读取了错误的配置文件然后出问题的

  • 请问出现这个 A LoadError occurred in #:这种类似问题怎么解决?(不讨论与话题无关的东西) at 2021年05月18日

    src_dev 和 src_test 目录是同一个项目吗?我看一开始的报错是 src_test 这个项目,后来变成 src_dev 了?

  • 请问出现这个 A LoadError occurred in #:这种类似问题怎么解决?(不讨论与话题无关的东西) at 2021年05月18日

    就是 dashboards_controller.rb 需要在 app/controllers/admin/ 这个文件夹下面。Rails 是惰性加载文件的,根据执行过程中你的类名来决定从哪个文件里读取你的代码。

  • 请问出现这个 A LoadError occurred in #:这种类似问题怎么解决?(不讨论与话题无关的东西) at 2021年05月18日

    看起来是路径名错了,还是回到一开始的那条错误。

    rails 期望 Admin::DashboardsController 这个类应当出现在 app/controllers/admin/dashboards_controller.rb 这个文件里。

    看 RubyMine 的截图文件名是对的,但 dashboards_controller.rb 可能不在 /controllers/admin 这个文件夹下面

  • RubyConf China 2021 Hotwire 讲师征集 at 2021年05月18日

    default gem contributor 必须要来投稿啊(

  • RubyConf China 2021 Hotwire 讲师征集 at 2021年05月17日

    那就是旅游公司了(

  • c 里面怎么嵌入 ruby 代码 at 2021年05月16日

    我推荐这个方法,而且很好实施

  • 记录一下 dashboard 性能优化 (10s->1ms) at 2021年04月16日

    之前用过一个 function 来把 explain 的估计 count 值拿出来。但还没想到这个 format json 的操作,这个可以拼接任意条件查询了,之前写法要是这么拼有注入风险。

  • [线上][2021年2月9日] RubyTuesday@Clubhouse at 2021年02月09日

    把晚上 RubyTuesday 的架构搭出来了,用苹果自带的功能把 iOS 输出作为 macOS 的 Audio Input,再用 Audio Hijack 做劫持,就能同时在 Clubhouse 和其它平台同步播出了。避免了有人没有邀请码或者 iOS 设备的尴尬。

  • 1
  • 2
  • 3
  • …
  • 9
  • 10
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English