开源项目 Writings 开源

Rei · September 28, 2013 · Last by riskgod replied at January 17, 2014 · 15378 hits
Topic has been selected as the excellent topic by the admin.

https://github.com/chloerei/writings

前略,约定的 writings.io 开源。

我不打算继续投入到这个项目了,所以不会有特性更新和技术支持。如果有安全漏洞或者哪块代码需要注释,可以发 isuess 或 PR。

开源的意义在于:

  1. 作为一个 Rails 应用示范,可以用来交流讨论
  2. 可以随意 Fork 并搭建自己的站点,MIT 协议

谁有意继续这个项目的,我乐意为之宣传,但是不会参与,因为我的看法是消极的,不利于项目发展。

接下来我会回到 Gitbub Pages 搭建个人网站,也推荐技术型作者用 Github Pages。

第一个,马上,顶!

真心感谢,顶!

抢到板凳,一定好好学习源码

#3 楼 @Sunnyroger 我已经开始想下一个计划啦。

#5 楼 @Rei 电子书平台?

#6 楼 @chankaward 不做平台了,资源少做不了的。

#7 楼 @Rei o(^▽^)o 期待一下

感谢,顶一个

#5 楼 @Rei 期待下一个项目……

支持,学习去了。。

支持,学习下。

很好,听到这个消息我很开心。你投入这么多,还是蛮有收获的,坚定看好你。

支持,希望开源社区能够更多支持这个项目

会变成中文开源社区宝贵项目之一啊,特别是那个编辑器!

谢谢分享

支持,学习去了。

顶,果断学习

不过还是不建议关闭网站,网站只要花不多的钱就可以维系下去。比如我的http://www.mystory.cc 流量和注册用户数都远不及 writings.io,都没有关掉。

其实看着还是挺遗憾的,祝楼主下一个项目顺利!

大赞楼主!

非常感谢 Rei 的开源精神,坚持,同时期待更优秀的作品~

挺遗憾,学习学习

支持@rei。 startup 成功率是低,但是你有一个项目成功了,你就成功。

感谢 Rei!最近在考虑做一个面向 academia 圈子里使用的线上写作工具,writtings.io 相信能让我从中学到很多东西~

Writings 给我的感觉是,早上刚刚注册的,还来不及好好看下功能,那天下午就发邮件说被拖库了,并且由于一个比较低级的错误... 隔了几天上去看了一下,发现这东西居然收费... 然后几天前,突然收到邮件,说要关站了,好吧。

刚学 Rails , 对这个社区不是很熟悉,看了 Rei 的资料,发现还是挺 Senior 的工程师。"这个社区的第一位用户".......

不过这个开源的事情还是挺不错的,谢谢分享。

@Rei 支持加感谢,希望你接下来能成功。

@Rei 精品,赶紧 clone 了学习

@Rei 支持!!

正好趁国庆好好研究 writings.io 期待@Rei下一个产品

人家 Ucloud 活动都结束了,你看你这来晚了吧

我一直想告诉 @Rei 看看 Quip 这个东西。

:thumbsup:

感谢分享,学习

#32 楼 @xiaoronglv 现在在 UCSD 这边读书,有个 Cal Tech 毕业的 faculty,之前做了一个 beta 版,反映很好,现在打算从工具入手,因为主要面向给学术圈的人用,所以能参考很多 writting.io 的设计

#44 楼 @dotcomXY

参考一下 Quip 吧,很棒。

感谢分享。~~

let it go, thank you...

@Rei 建议纠正下 readme 中的 typo 和 某些语法错误

#49 楼 @dfang 我英文水平有限,能提一下是哪些地方吗?pull request 就最好了。

旧的不去新的不来,支持楼主

这还是一个 Rails 4 的开源项目,值得关注。

#53 楼 @xds2000 应该是可以直接运行在你们厂的 PaaS 上的吧

顶楼主!已 fork,已部署…

好赞的!!

扼腕 扼腕

Unknow user #60 October 05, 2013

支持

新人,赞一个!

下午研究了一下,学到很多,谢谢。

很牛的开源,第一时间学习了。。

65 Floor has deleted

#65 楼 @o_0 买了,第一天买的。谢了:-)

要是能基于此项目出个教程,文字的和视频的,像 Michael Hartl 的那个就好了,不管多少钱,个人绝对第一时间购买

我想学习你的代码,可怜的我连怎么跑起来都不知道

#68 楼 @u1378130755 README.md 里写得很清楚了…

Gem::RemoteFetcher::UnknownHostError: no such name (https://rubygems.org/gems/factory_girl_rails-4.2.1.gem)
An error occurred while installing factory_girl_rails (4.2.1), and Bundler cannot continue.
Make sure that gem install factory_girl_rails -v '4.2.1' succeeds before bundling.
看看这个是什么情况啊

#69 楼 @cassiuschen Mongodb for database.

  • Memcached for caching.
  • Redis && Sidekiq for delay jobs.
  • Pandoc for markdown export.

这些怎么弄来?

#70 楼 @u1378130755 就按照说的安装gem install factory_girl_rails -v '4.2.1'啊…………第二个就是说你需要安装mongodb

#68 楼 @u1378130755 你是不是根本就没安装 rails 啊= =!

#74 楼 @Rei 你的那个编辑器我很喜欢,很想集成进 Pragmatic.ly, 不知道方不方便?上次还跟 Terry 说,愿意付费购买使用权...

#75 楼 @yedingding MIT 协议开源的,可以随意用。其实看起来好用有一半是样式的功劳,用来嵌入不一定比成熟的开源项目好。

支持一下

#73 楼 @cassiuschen 呵呵,装上了,研究研究

大谢楼主,现在有了一份基于 rail4 的优秀源码可以学习了。

谢谢分享,编辑器很棒。

@Rei writings.io,我刚注册了用户,还没三天就关闭了,我有种负罪感。

不过,对于 lz 来说,fail fast,是个好事。看过你写的关于 Writings.io 失败的文章,我觉的你考虑的第二个方案,我觉得可以实施,产品只提供给想用的那部分用户,但是你的心已经放弃了,所以你选了第 3 种方案,关闭,确实,自己没有这个心劲,实在是无法继续前行的。

愿 lz 重新启航,继续加油!

期待楼主可以做出更好的项目,责任心在,一定可以做出更多好的东西。

#76 楼 @Rei 求问个小问题…writings 你是用啥做服务器的?我用 puma 托管但子域名无法访问,看 log 发现根本就没发请求给 puma…nginx 里 writings.xxx.com 和*.writings.xxx.com 都指向了 puma 的 socket,但还是不行……

#85 楼 @cassiuschen passenger,现在我推荐 unicorn

#86 楼 @Rei 我 Unicorn 的配置:

worker_processes 4

app_root = File.expand_path("../..", __FILE__)
working_directory app_root

# Listen on fs socket for better performancelisten "/tmp/unicorn.sock", :backlog => 64

# Nuke workers after 30 seconds instead of 60 seconds (the default)
timeout 30

# App PID
pid "#{app_root}/tmp/pids/unicorn.pid"

# By default, the Unicorn logger will write to stderr.
# Additionally, some applications/frameworks log to stderr or stdout,
# so prevent them from going to /dev/null when daemonized here:
stderr_path "#{app_root}/log/unicorn.stderr.log"
stdout_path "#{app_root}/log/unicorn.stdout.log"

# To save some memory and improve performance
preload_app true
GC.respond_to?(:copy_on_write_friendly=) and  GC.copy_on_write_friendly = true

# Force the bundler gemfile environment variable to
# reference the Сapistrano "current" symlinkbefore_exec do |_|
  ENV["BUNDLE_GEMFILE"] = File.join(app_root, 'Gemfile')
end

before_fork do |server, worker|
  # 参考 http://unicorn.bogomips.org/SIGNALS.html
  # 使用USR2信号,以及在进程完成后用QUIT信号来实现无缝重启
  old_pid = app_root + '/tmp/pids/unicorn.pid.oldbin'
  if File.exists?(old_pid) && server.pid != old_pid
    begin
      Process.kill("QUIT", File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
      # someone else did our job for us
    end
  end

  # the following is highly recomended for Rails + "preload_app true"
  # as there's no need for the master process to hold a connection
  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|
  # 禁止GC,配合后续的OOB,来减少请求的执行时间
  GC.disable
  # the following is *required* for Rails + "preload_app true",
  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.establish_connection
end

Nginx 的配置是

upstream writings-unicorn {
  server unix:/tmp/unicorn.sock fail_timeout=0;
}

server {
  listen 80;
  server_name writings.xxx.com;
  root /var/mirrors/writing/public;
  try_files $uri $uri/index.html @user2;
  location @user3 {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://writings-unicorn;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

依然子域名访问失败… dns 上 writings 和*.writings 全指向这台服务器,用端口模式访问的时候子域名正常,用 socket 就出问题了……很纠结…看来应该是 unicorn 配置问题…

#87 楼 @cassiuschen Nginx 的配置

listen 80 default_server;

#88 楼 @Rei 明白了……终究是因为没有绑定上……谢谢 Rei 大大~

#88 楼 @Rei 不过依旧不行= =!

#90 楼 @cassiuschen 自己修吧,我不想花时间对一个放弃了的项目做技术支持了。

准备作为第一个开源项目来读

You need to Sign in before reply, if you don't have an account, please Sign up first.