Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Jex
@jex
Member
NO. 15918 / 2014-11-14

[email protected]
5 Topics / 48 Replies
1 Followers
0 Following
2 Favorites
I'm Jex.
GitHub Public Repos
  • regulex 5804

    :construction: Regular Expression Excited!

  • PlainSite 31

    PlainSite:A Truely Hackable Static Site Generator.

  • ShunEncode 15

    🐶巷议,通过简单混淆来规避敏感词程序的审查

  • anthology 4

    Jex's Code Anthology

  • cjex.github.io 4

    Jex is dead

  • PLPapers 3

    Programming Language Papers Bookmarks

  • hol-light 1

    HOL Light is an interactive theorem prover / proof checker. Automatically exported from code.goog...

  • INTANG 0

  • syslocal 0

    My personal system customation scripts and config files.

  • XX-Net 0

    a web proxy tool

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 大家的个人博客是定制开发还是开源系统 at July 14, 2019

    Jekyll 之类不是所见即所得系统写文章太累了,容易分心。以前我也自己写过一个非常灵活的静态网站生成工具 PlainSite,但现在还是放弃了,等以后重写一个 GUI 静态网站生成工具。

    JexCheng Blog: https://jex/

  • 欠李笑来一个亿、圈走三个亿的骗子,会得到制裁吗? at July 07, 2019

    现在的比特币就是纯粹浪费电能

  • 欠李笑来一个亿、圈走三个亿的骗子,会得到制裁吗? at July 07, 2019

    直到今天还有人想抄底比特币呢,这些人股票期货外汇一样不懂,对比特币却说得头头是道,估计他们的经济学是从《货币战争》学来的

  • Ruby 的命名空间提案,引用包时避免污染全局环境 at August 19, 2018

    早该作出改变了,多向 Python import 学学

  • 刚看到,加速本地 .dev 域名的打开速度 at October 25, 2017

    注意是反向域名解析: https://github.com/JexCheng/plain_site/blob/master/lib/plain_site/socket_patch.rb https://stackoverflow.com/questions/1156759/webrick-is-very-slow-to-respond-how-to-speed-it-up

  • 现在国外服务器还有救么? at March 29, 2017

    Cloudflare CDN 速度还能接受

  • 利用数组的 & 操作,精减代码 at September 22, 2015

    #5 楼 @davidwei 看来我想当然了,不过这也只能怪 Ruby 自己了,Array#& 是 C 实现的,而 Set模块是用 Ruby 实现的…一个比 Array 更需要高效率的场景反而用 Ruby 写 😢

    不过你的测试代码不太好,集合太小,并且不是随机数据,Array#include?理论是比Set#include?慢的,但看 Ruby 源码,Array#& 方法已经将数组转换成 hash 再求并集的,所以求交集并集能和 Set(数据结构意义上的 Set,Ruby 中的 Set 模块太令人失望了)一样高效。

    看下面测试:

    require 'benchmark'
    require 'set'
    GC.disable 
    
    ary = (1..1000).to_a.shuffle
    subary = (1..100).to_a.shuffle
    set = Set.new(ary)
    subset = Set.new(subary)
    iterations = 2000
    
    Benchmark.bm do |bm|
      bm.report("Array all? and include?\n") do
        iterations.times { subary.all?(&ary.method(:include?)) }
      end
    
      bm.report("Set all? and include?  \n") do
        iterations.times { subset.all?(&set.method(:include?)) }
      end
    
      bm.report("Array & and any?       \n") do
        iterations.times { (ary & subary).any? }
      end
    
    end
    
    

    输出:

           user     system      total        real
    Array all? and include?
      2.900000   0.000000   2.900000 (  2.900707)
    Set all? and include?  
      0.030000   0.000000   0.030000 (  0.038133)
    Array & and any?       
      0.110000   0.000000   0.110000 (  0.112873)
    
    

    理论上最高效的方法是:

    subset.all?(&set.method(:include?))
    

    但鉴于 Set 模块是 Ruby 代码实现的,集合不大的情况下,还是楼主的(arr & subary).any? 实际速度最快 😪

  • 利用数组的 & 操作,精减代码 at September 22, 2015

    #3 楼 @tini8 uniq 之后还是数组啊,求交集并集还是低效(Ruby 中Array#&之类的求交集并集方法内部是用的 Hash),Set#include? 方法复杂度是 O(1),数组的是 O(n) 啊

  • 利用数组的 & 操作,精减代码 at September 22, 2015
    a = [1,2,3,4,5]
    subset = [1,2,4]
    subset.all? &a.method(:include?)
    
    # 或者
    require('set')
    Set.new(subset).subset? Set.new(a)
    
    

    如果求交并集场景较多,还是先转换成 Set 更高效

  • 大家觉得把传统分页去掉如何 at September 19, 2015

    但是默认进入的第一页确实是个问题哈,或者默认第一页是最久远的评论?用户体验不太好啊。如果要预先读出共有几页,又要多耗计算资源

  • 大家觉得把传统分页去掉如何 at September 19, 2015

    对了,我的 PlainSite 就是采用倒序字母编号的分页,这样当新文章发布时,旧的列表页面的 URL 不会改变。

    因为文章是按时间从近到远排序的,第一页是最新的文章,所以最后一页的 URL 是a.html,倒数第二页的 URL 是b.html。 如果用数字分页,则可以let count = pages.length,第一页的 URL 是page/#{count},第二页是page/#{count-1}

    https://ruby-china.org/topics/22876

  • 大家觉得把传统分页去掉如何 at September 19, 2015

    同不喜欢无限加载的展现形式!分页大法好!!!!

  • Clojure 中文社区的地址 at September 10, 2015

    楼主题叶好像是社区挖坑狂,各大冷门语言的中文社区都被抢注了

  • GuruDigger 新功能求测试 - 自动提取你在 Github 上面一段最有代表性的代码 at April 27, 2015

    #8 楼 @kamehamehon 但是我根本找不到在哪里设置我的 Github

  • GuruDigger 新功能求测试 - 自动提取你在 Github 上面一段最有代表性的代码 at April 25, 2015

    #5 楼 @kamehamehon 还有个 Bug,我在编辑个人技术方向时,它总是将字母小写,我输入“PLT, Compiler ”(注意有个全角的 C),结果是“compiler, PLT, Compiler”

  • GuruDigger 新功能求测试 - 自动提取你在 Github 上面一段最有代表性的代码 at April 25, 2015

    你给出的示例分析的就不太对啊,代码摘要摘的不是他自己的代码:https://github.com/ftao/s5-creator/blob/master/HTML/js/wymeditor/xhtml_parser.js

  • 各种编程语言的优缺点,对 Ruby 的评价挺高啊 at April 22, 2015

    昨天我还在想,有没有一个社区专门用于批判各编程语言缺点的,比如叫 xlang-sucks.com。因为一般的社区里,只要你说一句哪个语言不好,就会立该被当成 Flamewar,最可怕的是那些 和事老,总是把“没有最好的语言,只看你能不能把它用好”挂在嘴边,昨天也刚看到这篇博客:http://www.yinwang.org/blog-cn/2015/04/03/paradigms/

    好好先生

    很多人避免“函数式 vs 面向对象”的辩论,于是他们成为了“好好先生”。这种人没有原则的认为,任何能够解决当前问题的工具就是好工具。也就是这种人,喜欢使用 shell script,喜欢折腾各种 Unix 工具,因为显然,它们能解决他“手头的问题”。

    然而这种思潮是极其有害的,它的害处其实更胜于投靠函数式或者面向对象。没有原则的好好先生们忙着“解决问题”,却不能清晰地看到这些问题为什么存在。他们所谓的问题,往往是由于现有工具的设计失误。由于他们的“随和”,他们从来不去思考,如何从根源上消灭这些问题。他们在一堆历史遗留的垃圾上缝缝补补,妄图使用设计恶劣的工具建造可靠地软件系统。当然,这代价是非常大的。不但劳神费力,而且也许根本不能解决问题。

    所以每当有人让我谈谈“函数式 vs 面向对象”,我都避免说“各有各的好处”,因为那样的话我会很容易被当成这种毫无原则的好好先生。

    我最讨厌这种好好先生了

  • 用 ReactNative 写了个 RubyChina 客户端,写得内牛满面 at April 06, 2015

    这个,你直接发 HTTPS 请求不就可以了么?

  • 透彻理解 Ruby 中的 return at March 23, 2015

    。。。。你只要说 Ruby 中 block 不是 function/lambda 就行了,哪来这么多混乱。在其它语言中 return 都是退出 function/lambda,只是 Ruby 多出了 block,它用的是花括号,像 lambda 但又不是,才产生了混淆

  • 如何把网络上的负能量转化成正能量? at March 23, 2015

    #4 楼 @huopo125 你前面那个“👍”字符是乱码

  • 如何把网络上的负能量转化成正能量? at March 23, 2015

    #2 楼 @huopo125 What?

  • 中文互联网有没有类似 ROT13 这样的东西? at March 09, 2015

    #5 楼 @Rei 嗯,刚才弄错了

  • 中文互联网有没有类似 ROT13 这样的东西? at March 09, 2015

    #2 楼 @Rei 这个没办法解码好像

  • 正负抵消的删除 at January 24, 2015

    #19 楼 @blacktulip 不服?上 Github 单挑

  • 正负抵消的删除 at January 24, 2015

    嗟,来跳坑!

    a.sort.join(",").gsub(/(\w),-(\d),\1,\2,?/,"").split(",").each_slice(2).to_a
    
  • 想知道童鞋们一般做个小博客要花多久? at December 22, 2014

    PlainSite 大法好,退 Jekyll 保平安! PlainSite: A Truly Hackable Static Site Generator!(https://ruby-china.org/topics/22876)

  • 怎样做到所见即所得的编辑? at December 20, 2014

    #7 楼 @chairy11 。。。。。。。。。思维固化成这样?

    提交数据就一定得用表单么?

    <div contentEditable="true" id="page_content">
    <%= page_content %>
    </div>
    <script>
    //每隔三秒就自动保存修改
    setInterval(function () {
       $.post({
            content:$('#page_content').html(),
            url:'/save-page-content/'
      });
    },3000);
    
    </script>
    
  • 怎样做到所见即所得的编辑? at December 19, 2014

    记得这个项目好像就是: https://github.com/sofish/pen


    原来楼主是后端怎么存储没搞明白。这太简单了,随便你怎么存呗,将整个页面的 HTML 存下来

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