• 400k 的 HIDE(https://github.com/Androthi/HIDE) 开发 ruby 多大的文件都是秒开

    ar + sinatra/reloader +slim 秒杀拍黄片,让你体验什么叫生产力要素

    ruby 写累了,还可以换着写写汇编歇歇脑子

  • erb 算是服务端渲染么? at 2021年09月10日

    google 已经在视线里消失了,老老实实用 erb 和 jquery

    用所谓的高大上的前端技术做页面只是吃力不讨好,就象舔狗舔到最后一无所有 用高大上的前端技术做了个网站 10 年后,再看 seo 纪录为 0

  • gem install sinatra -N 不安装文档

    ~/.gemrc 中加入

    ---
    :sources:
    - https://rubygems.org
    :ssl_verify_mode: 0
    gem: --no-document
    
  • 封装的太深了

  • $ ruby  test.rb
    Traceback (most recent call last):
            13: from test.rb:14:in `<main>'
            12: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/dataset/actions.rb:401:in `insert'
            11: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/dataset/actions.rb:1109:in `execute_insert'
            10: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/adapters/sqlite.rb:159:in `execute_insert'
             9: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/adapters/sqlite.rb:193:in `_execute'
             8: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/database/connecting.rb:269:in `synchronize'
             7: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/connection_pool/threaded.rb:92:in `hold'
             6: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/adapters/sqlite.rb:202:in `block in _execute'
             5: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/database/logging.rb:38:in `log_connection_yield'
             4: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sequel-5.48.0/lib/sequel/adapters/sqlite.rb:202:in `block (2 levels) in _execute'
             3: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.4.2.mspgreg-x64-mingw32/lib/sqlite3/database.rb:194:in `execute'
             2: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.4.2.mspgreg-x64-mingw32/lib/sqlite3/database.rb:148:in `prepare'
             1: from Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.4.2.mspgreg-x64-mingw32/lib/sqlite3/database.rb:148:in `new'
    Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.4.2.mspgreg-x64-mingw32/lib/sqlite3/database.rb:148:in `initialize': SQLite3::SQLException: table posts has no column named mail (Sequel::DatabaseError)
    
    
  • 你这种情况属于无症状病毒,除了电视上宣传需要隔离以外,人畜无害。

    https://bbs.csdn.net/topics/370210670 命令行编译的没花钱买数字签名证书的(交保护费),统统报毒,现在的杀毒技术,相比 10 年前高级多了

  • SavageEd 反应最快 秒杀 editplus 开源免费 https://github.com/Androthi/SavageEd

  • 刚从 node 那边回来 at 2021年09月09日
  • angularjs 双向绑定是正道,react 是一条邪路 写 react 完全是浪费生命

  • 怎么格式化 rack 的 @env at 2021年09月09日

    是只依赖 rack 的一个框架 主要功能特点

    • 前缀树路由 写好一个 路由 (对应 rails 的 resouces) 以后 可以 mount 到任意节点 象 include class 那样使用路由
    • 自定义 form parser 可以定制自己的 post 数据格式,比如 post yaml 不仅仅是 form-urlencoded,json 格式两种
    • 针对节点(endpoint)添加 headers/middleware,而不是象一般框架那样全局添加,不管需不需要都要例行公事过一遍
    • form 参数校验
    • 只实现最小可用,可选的功能用 apply_extension 实现 比如模板,日志
    • pure ruby,只依赖 rack
  • 直接运行 Post.insert(mail: "[email protected]") 为什么不报 Sequel::DatabaseError 而是 SQLite3::SQLException

  • 怎么格式化 rack 的 @env at 2021年09月08日

    app.rb

    require "rack/app"
    class App < Rack::App
      get "/" do
        '<form  action="/" method="post" ><input name="username" ><button>Send</button></form></body></html>'
      end
      post "/" do
        params.inspect 
      end
    end
    

    config.ru

    require './app'
    run App
    

    rackup

    是看 http://www.rack-app.com/ 这个框架

    ruby 的框架真是五花八门 post 参数有的 params 有的是 input 有的是 req 有的是 request.params 不看代码真不知道表单 post 到哪去了

  • 怎么格式化 rack 的 @env at 2021年09月08日

    json 可以输出树状视图 看起来清楚一些

    rack 就是 输入一个特定格式的 Hash,然后输出一个特定格式的 Array

    def call(Hash)
        ['code', {'Content-Type' => 'xxx'}, ['body']]
    end 
    
  • 为什么命令行运行报 SQLite3::SQLException 在代码里捕获是 Sequel::DatabaseError

    看代码

    • Sequel::DatabaseError < Sequel::Error < ::StandardError
    • SQLite3::SQLException < SQLite3::Exception < ::StandardError

    这两个有什么不同吗?为什么一个行,另一个不行

  • 刚从 node 那边回来 at 2021年09月07日

    任何框架都支持 activerecord

  • 刚从 node 那边回来 at 2021年09月07日

    -T, [--skip-test-unit], [--no-skip-test-unit] # Skip Test::Unit files

  • 刚从 node 那边回来 at 2021年09月07日

    rails new todos-api --api -T

    但用 rackstep 更简单默认输出 json 但也可用 erb 模板 会两个方法就可以写代码

    • App.add_route
    • Controller.process_request
  • 什么都要,就不要拍黄片和够烂

  • 薪酬几多就是重中之重 如果 955 月入 8000 (加班费按实际加班小时算然后装自己兜里,不计入月薪),要买 10 万一平的房子,按银行信贷的审核条件,第一步就卡壳了

    如果 996 月入 8 万 (加班费混在月薪里计算),够烂码农看着打印出来工资流水就开始蠢蠢欲动了

  • 帖子里面并没有说全国各地活不下去

    比如

    • 北京本地拿 8000 的就活得很风光
    • 去北京住地下室挣 8000 的活得不算风光,但是也凑合活得下去
    • 成都拿 6000 的麻将打得飞起 各种火锅串串
    • 西藏拿 3000 的载歌载舞走进新时代

    活不下去的只有一种人,冲着够烂高薪光环的预期,10 年期间用 996 加班工资负债 30 年 突然一觉睡醒后 996 违法了,加班工资瞬间没了的这种情况 经济学上这叫定向爆破

  • rails 适合快速出原型 并不适合后期慢慢扩展功能 参考 https://ruby-china.org/topics/41457
    后期慢慢扩展功的这种需求 要选择微框架流派 microcore+plugins
    很明显 rails 并不是这种结构

    微框架做的 blog

    roda+ sequel

  • https://github.com/huaize2020/awesome-nodejs 其他语言中一个函数调用叫 api 在 nodejs 里面叫 package

  • 你可能无法理解在加入 WTO 之前,一月工资 800 也能活得很风光。这个有点扯远了,容易扯到通货膨胀,扯到津巴布韦去。

    还是回到当下就说现在,工资 8 万的地方,房价在 10 万左右。有图有真相:

    不论天南海北,不论工资高低,房价要比工资高一档,这是放之四海皆准的真理。

    而工资是累进税率,工资 8000 的税率是 20% ,工资 8 万的税率是 35% 也就是工资越高,税负越重,而房子买多少都是同一税率 买多少套都一样

    当然你可以拿着 8 万 6 不买房,然后结不了婚,结了婚小孩也上不了纳税所在地的学校,成为传说中的留守儿童。房租年年涨,挣了钱还没捂热转手就交给房东。还有跟房东因为琐事发生纠纷半夜醒来被房东轰出去的风险。周围全都是 cctv 里的成功人士,就你一个孤独的月入 8 万 6 的卢瑟坚强地活下去,夜深人静的时候突然从梦中惊醒,象哲学家那样痛苦地思考:人生的意义究竟在哪里?

  • 从 1.8 升级到 3.0 步子有点大,容易扯到蛋。这种情况,你可以用新版本起个本地代理 旧系统用 http 访问本地新版本代理,然后新版本用 https 转发到其他公司的 webservice,如果担心 rails 性能问题的话,可以用 sinatra

  • https 也分很多版本 ssl1 ssl2 ssl3 tls1.0 tls1.1 tls1.2 tls1.3
    现在主流的网站用 tls1.2 新潮一点的网站比如 ruby-china 用 tls1.3

  • 用的 rails 哪个版本?

  • class AddSoundfileToPractices < ActiveRecord::Migration[6.0]
    

    [6.0] 这个语法术语叫什么?

  • class Options
        if home = ENV['HOME'] # POSIX
          DB = File.join(home, '.camping.db')
          RC = File.join(home, '.campingrc')
        elsif home = ENV['APPDATA'] # MSWIN
          DB = File.join(home, 'Camping.db')
          RC = File.join(home, 'Campingrc')
        else
          DB = nil
          RC = nil
        end
    
    

    数据库是从环境变量中拼出来的 框架死了,只要有代码,就还能跑起来