这样会很难写编译器吧,有些语法之间会有潜在的二义性。
不乱装东西,不乱改配置的话,Linux 默认设定是比较安全的。 至于如果你真的要保证服务器安全的话,招一个专业的人会比较好。
postgres 不会用,web 服务器我选 unicorn,看来是合不到一起了……
def count_zeros(n)
zeros = 0
five = 5
while five < n
zeros += n / five
five *= 5
end
zeros
end
count_zeros(1000)
#=> 249
去做 1000 次乘法的我也是醉了。
先明确下你想问什么吧。 以及建议先读一下《提问的智慧》。
首先你并没有告诉我们,这 123 个 commits 是不是就应该是 123 个 commits,而不是,比如说 18 个 commits。
よく遊んでるね君たちは。
数据类放到 models 里,封装的功能模块类放到 lib 下。
没啥动力,我是不会去学的啦(死
这不叫 Windows 下使用 Rails。 Ubuntu,说实话,是 Linux 的一种。
一直用 ssh 协议。自己弄个域名指向到 git 地址(我这是 bitbucket),然后个人和公司账号用不同域名下配置的不同证书来登录。
城会玩 :doge:
用事务会有用事务的问题。 比如用事务的话数据是跨连接隔离的,也就是说做集成测试的时候可能会遇到没有办法测试实际写入的数据的问题。 所以改用 database_cleaner,实际地写入数据,测试完毕以后再 truncate 掉数据表,不容易遇到坑。
#14 楼 @zhang_soledad 其实主要是楼主帖子里的代码 TL;DR 了所以……
#6 楼 @classicalliu proxy_pass 后面的和 upstream 的名字要相同,并且绝对不能和 server_name 相同。
result = lists.group_by(&:name).map do |name, models|
[name, models.group_by(&:model).map do |model, dates|
[model, dates.map(&:date).join(' ')]
end.to_h]
end.to_h
这样可能更简单一些?
#4 楼 @classicalliu 显然是不能这么改的。
upstream server_name proxy_pass 三项改成了域名地址
What??
Python 的精髓就是 Explicit 优于 Implicit。
这不能算是「问题」吧。Grape 本来设计理念就和 Rails 不同,加上你主动选择了多线程的服务器方案,那你就得自己解决线程安全性问题了。
输入byobu
命令:
you@yourLinuxServer: byobu
当然,可能你需要一个窗口实时看服务器 log,然后一个窗口操作数据库,然后一个窗口写代码,或许还要一个窗口敲 git 等其他命令行。
这样至少需要 3-4 个窗口,这时,你可以按 F2 键,这将会为你新建一个新的 session。重复这个动作,直到你创建了足够的窗口 (sessions),在这里算上敲命令行的窗口一起是 4 个。
如果你只是照做的话,现在你正处在 session 3 或 session 4。为了统一场景,我们在接下去的下文中都假设你是启用了 4 个 session。
不过这时候,你看不到你的 session 所处的位置,因为他们都在背后运行。不过暂时继续跟着我做下一步,晚点再告诉你如何查看你的当前 session 位置。
怎么会看不到你的 session 所处的位置呢?他们就在最下方的状态栏里了。
按 F8,这时你会在底部看到一行文字,仅仅照做吧。对的,它是让你给当前的 session 起一个 title,作为练习,我们这里统一起 qux(聪明的人应该会知道我为什么在这里输入的是 qux,而不是 foo 了?)。输入完 qux 之后,接着按 return 键。
接下去我们继续为其他的 session 起名字。按 F4,这时候你进入了 session 0。然后按照上面的教程,你继续给它起 title,这时候应该是起 foo 了 (当然,这不是强制的,你现在当然可以自己想怎么起就怎么起)。重复这个动作,给 session 1, session 2, session 3 都起好名字。当然,别忘了,F3 向左切换,F4 向右切换。而且就算你不起名字,byobu 也会智能地把你运行的程序名字填在里面,哪需要这么麻烦手动改名。
这个时候,我想听点音乐。没关系,我只是按一下F2新建一个 session,然后输入 cmus 打开我的播放器,选择 bon jovi 的 keep the faith 按 return 就开始听音乐了。然后继续切回到我工作的 session 去。
继续告诉你一个小技巧,试试看按 + x。天啦,我还可以创建一个密码,锁定我的 sessions。这对于我工作区域的保护及隐私而言真是太棒了!
要保护工作区域和隐私,请善用操作系统自己的锁定。
当然还可以用 F6,让 byobu 运行在后台。比如:对于 project 1 我使用了 byobu 来协助我管理 sessions,对于 project 2 我也用 byobu 协助。然后从 project 1 到 project 2,就通过F6 然后再运行 byobu来前后切换。至于怎么创建一个新的窗口组?byobu new
啊
至于回滚历史记录,请用 F7 然后就可以PgUp/PgDn/g/G/h/j/k/l/q
了,还可以用/?
来搜索。
谢谢,希望对你有些许帮助。
分屏功能
$ cat .byobu/keybindings.tmux
unbind-key -n C-a
set -g prefix ^A
set -g prefix2 ^A
bind a send-prefix
bind-key -n F10 display-panes \; split-window -h
bind-key -n F11 display-panes \; select-pane -t :.-
bind-key -n F12 display-panes \; select-pane -t :.+
#12 楼 @1272729223 比如你这堆 session,要用 Ctrl-A 快捷键搞半天,开 byobu 的话直接绑定在 Fx 快捷键上,F2 F3 F4 直接就可以切换。 我这边另外绑定了切分窗口的快捷键,用 F10 F11 F12 切换。 Ctrl-Z+BG/FG 就更诡异了,软件自己的 detach/attach 不用去用 jobs 何必呢。 byobu 里 F6 就可以断开一组窗口,然后马上就可以 attach 到另一组窗口了。 至于查阅历史记录,byobu 里 F7 就可以进入 copy mode。screen 也有自己的 copy mode,快捷键我就不帮你查了。
所以我一开始就说了,为什么不用个好点的工具而要逼着自己去用困难模式的 screen。
#8 楼 @1272729223 tmux 或者直接上 byobu。 上文提到的 Tmuxinator 也不错,不过和 byobu 用途有点不太一样。
为什么不用更好的,而要坚持用 screen 呢?
最后总结下来其实就是工程师值钱还是服务器值钱的问题了。 服务器永远会越来越便宜,工程师永远会越来越贵。
工程师的单点效率也会越来越贵。