小编Joe*_*Dyk的帖子

为什么在一个数据结构上运行100个函数比在10个数据结构上运行10个函数更好

我在很多地方都看过这个:

"在一个数据结构上运行100个函数比在10个数据结构上运行10个函数更好." -Alan Perlis

但我从未见过它解释了为什么这应该是真的.您是否应该尝试从第一个派生其他9个数据结构以避免重复数据?我觉得我错过了一些背景.

quotations data-structures

64
推荐指数
2
解决办法
6336
查看次数

设计问题:您将如何设计定期事件系统?

如果您的任务是构建支持重复事件的事件调度系统,您将如何做?如何删除定期活动时的处理方式?你怎么能看到未来事件何时发生?

即在创建活动时,您可以选择"每日重复"(或每周,每年等).

请回复一个设计.我已经习惯了Ruby/Rails,但是使用你想表达设计的任何东西.

我在接受采访时被问到这个问题,并且无法提出我喜欢的非常好的回复.

注意:这里已经被问到/已经回答了.但我希望得到一些更实用的细节,详情如下:

  • 如果有必要能够对重复事件的一个实例进行评论或以其他方式添加数据,那该怎么办?
  • 事件更改和删除如何工作?
  • 你如何计算未来事件的发生时间?

calendar

47
推荐指数
2
解决办法
2万
查看次数

获取Rails URL帮助程序以自动输出https URL

我正在开发一个混合了http和https的网站 - 最简单/最简单的方法是让链接使用正确的路由协议 - 是否可以在路由文件中指定?

假设我在Rails 3中有以下路由.

match "/test" => "test#index", :as => :test, :constraints => { :protocol => 'https' }

如果我在http页面上,并且我使用test_url()它,它将输出http://domain.com/test.我想改为https://domain.com/test.

我知道我可以使用test_url(:secure => true),但那是重复的逻辑.

我知道我可以http://domain.com/testhttps://domain.com/test,但这是一个额外的重定向,加上它在表单帖子上失败了.

想法?

ruby ssl routes ruby-on-rails

31
推荐指数
4
解决办法
2万
查看次数

从ActiveRecord原始SQL获取类型化结果

在续集中,我可以做到:

irb(main):003:0> DB["select false"].get
=> false
Run Code Online (Sandbox Code Playgroud)

返回false布尔值.我希望能够在ActiveRecord中做类似的事情:

irb(main):007:0> ActiveRecord::Base.connection.select_value "select false"
=> "f"
Run Code Online (Sandbox Code Playgroud)

如您所见,它返回字符串"f".有没有办法用ActiveRecord获取一个假布尔值?(类似地,我可能正在调用一个返回timestamptz,数组等的函数 - 我希望返回的值具有正确的类型)

我的用例:我正在调用数据库函数,想要取回一个键入的结果而不是一个字符串.

ruby postgresql activerecord

26
推荐指数
4
解决办法
5454
查看次数

如何编写银行账户转账软件?

您知道那些允许您输入支票帐号和路由号码的网站,然后他们可以从您的帐户转账吗?

这是如何运作的?这样做有什么好的服务或API吗?任何陷阱?

banking

17
推荐指数
2
解决办法
2万
查看次数

使用Haskell的QuickCheck生成特定长度的列表

-- 3 (find k"th element of a list)
element_at xs x = xs !! x
prop_3a xs x = (x < length xs && x >= 0) ==> element_at xs (x::Int) == (xs !! x::Int)
Run Code Online (Sandbox Code Playgroud)

当prop_3a通过QuickCheck运行时,它会放弃,因为它不会生成足够长的列表.

如何编写生成长度超过随机整数的列表的生成器?

haskell quickcheck

14
推荐指数
2
解决办法
4913
查看次数

自动重新加载ghci并在文件更新上运行hlint

我在想我理想的haskell编辑工作流程:

  • 我打开三个终端(使用iterm2拆分).
  • 终端1运行vim以编辑haskell源文件.
  • 当当前目录或子目录中的文件更新或创建时,终端2会自动在已更改的文件上运行hlint
  • 终端3运行ghci,自动加载/重新加载已更改的文件.

有没有人设置这样的东西?我们的目标是让hlint不断观察我的代码中的样式问题,并且可以快速更改ghci,而不必在vim中保存文件.

我正在考虑使用像watchr这样的东西进行自动化.

haskell ghci watchr

14
推荐指数
2
解决办法
3370
查看次数

如何将HTML转换为Textile?

我正在抓取一个静态html站点并将内容移动到数据库支持的CMS中.我想在CMS中使用Textile.

是否有一个工具可以将HTML转换为Textile,因此我可以抓取现有网站,将HTML转换为Textile,并将该数据插入数据库?

html textile

11
推荐指数
1
解决办法
6433
查看次数

从stdin中删除第一行并重定向到stdout

我需要将除第一行之外的程序的所有stdout重定向到文件中.

是否有一个常见的unix程序从stdin中删除行并将其余部分吐出到stdout?

unix stdin stdout

10
推荐指数
2
解决办法
6022
查看次数

ActiveRecord模式与Domain Object或Data Mapper模式有何不同?

我在看DataMapper,乍一看似乎使用了ActiveRecord ORM模式.其他人说它使用DataMapper和/或Domain Object模式.

这些模式有什么区别?

activerecord ruby-on-rails datamapper

9
推荐指数
1
解决办法
2125
查看次数