我知道这可能看起来很奇怪并且在寻找麻烦,但我认为体验古代程序员以前经历过的事情是有趣的.那么我怎样才能执行只用二进制编写的程序呢?(假设我知道我在做什么,当然不使用汇编.)
我只是想编写一系列比特111010111010101010101并执行它.那我该怎么办呢?
我有两个模型(ModelA和ModelB),每个都有FactoryGirl工厂.我希望ModelB的工厂能够(A)创建测试数据,并且(B)构建(不保存到数据库)样本数据以显示给客户.由于我的模型中的Rails验证,我无法让(A)工作.
MODELA:
class ModelA < ActiveRecord::Base
belongs_to :model_b
validates_presence_of :model_b
end
Run Code Online (Sandbox Code Playgroud)
ModelA工厂:
FactoryGirl.define do
factory :model_a do
some_attr "hello"
model_b { FactoryGirl.build :model_b }
end
end
Run Code Online (Sandbox Code Playgroud)
ModelB
class ModelB < ActiveRecord::Base
has_one :model_a
end
Run Code Online (Sandbox Code Playgroud)
ModelB的工厂
FactoryGirl.define do
factory :model_b do
some_attr "goodbye"
end
end
Run Code Online (Sandbox Code Playgroud)
如果没有验证错误,我无法从这些工厂创建对象:
ruby> FactoryGirl.create :model_a
ActiveRecord::RecordInvalid: Validation failed: ModelB can't be blank
Run Code Online (Sandbox Code Playgroud)
似乎FactoryGirl在保存其关联之前尝试保存工厂对象.我意识到我可以让ModelB的工厂创建其关联的ModelA(而不是构建它) - 然而,我将失去能够使用ModelA工厂来构建样本数据或保存测试数据的灵活性.或者,我可以删除验证; 但后来我没有验证.
还有其他选择吗?
考虑以下两种情况:场景1).今天是2012年5月1日,场景2).今天是2012年9月1日.
现在,请考虑我们在我们的网页上写下以下关于某人留下的评论:"此评论写于3个月和12天前".即使声明完全相同,这两种情况下的天数也总是不同.在情景1中,"3个月和12天"将相等102 days.但是,在场景2中,"3个月和12天"将是104 days!
现在,谈谈我的观点,让我们使用一个不同的例子,并说有人在2013年1月30日在我们的网站上发表评论,今天是2013年3月10日.我们真实的TimeSpan对象需要知道这个相对日期,并且可以计算出来以下内容:
因此,这意味着10天+ 1天+ 1个月总计,转换为This comment was posted 1 Month and 11 Days ago.
现在,如果您使用MS样式TimeSpan对象(或任何语言的任何TimeSpan对象),它将为您提供从1月30日到3月10日(39天)的天数,并且因为TimeSpan对象不存储相对日期(我们减去获得TimeSpan的基数/初始日期),如果你问它有多少个月和几天,它会假设一个月内有30天,甚至最差,大于30天的平均值,并在几天内返回其余的,所以要到39天,它会告诉你它是1个月和9天,你会收到This comment was posted 1 Month and 9 Days ago消息.请记住,这两种情况都具有相同的开始日期和相同的当前/结束日期,是的Microsoft TimeSpan对象,不允许我们告诉它应该考虑2013年2月,给了我们一个完全不同的TimeSpan,关闭整整2天.它实际上对我们撒了谎.
问题是,人们会相信这一点,谁知道他们可能有什么看法,他们对过去的看法如何改变,以及他们在尝试重建过去内部事件时可能做出的决定和生活选择,而从不注意或理解代表时间的缺点和固有的失败,这在当今无处不在.他们不会理解编程语言没有实现(或关心)上个月有31天,反对30,29或28 - 反之亦然,并且当你增加TimeSpan时这会增加.
这是这篇文章的核心问题.我知道大多数人都不会关心这种差异(但要确保我们有些人这样做,并且不能背负这种差异),如果这不打扰你,那没关系.我希望它不会打扰我,我会节省一些时间,压力和失望.如果这不是一个麻烦,您可以使用该功能有效地文本显示相对时间(可定制为从几秒到几年的1到6个节点),而不是使用它提供的通常可忽略的精度.
令我失望的是,我注意到没有真正的时间跨度对象,如果你得到一个时间跨度,做一个.years或.months你什么也得不到,你只会得到.days和降低,因为timeSpan对象没有任何东西告诉它哪个月或者年份是什么时候创建的.因此,它永远不会真正知道自每个月的日子在一年内变化多少个月甚至是闰年的变化.
为此,我将发布一个我开发的函数,以获得准确的读数,并能够在我的ASP.NET网页上返回如下内容......
发表于4年,3个月,14天,15小时,18分钟和24秒之前
我想有一个......
timeSpan.GetActualNumberOf[Months/Days/Hours/etc] (当然必须提供基准日期)
...此数据类型的类型方法,但没有.
所有你真的需要做的是在时间跨度对象上创建另一个属性给它上计算出的差异,那么上面可爱的字符串将是可计算很容易地和一个基准日.year及.month会存在!
更新:我已经大大扩展并更新了我在下面的答案中的官方答案和代码使用细节,100%工作答案和代码(完整),准确和准确的相对时间/日期,没有近似值 - 谢谢.
我想在命令行(linux和mac)上运行我正在创建的Java程序.我不想一直输入"java"和参数,所以我在考虑创建包装器脚本.最好的方法是什么,以便它们在任何地方工作?我也希望能够传递参数.我正在考虑使用"shift"来做到这一点(删除第一个参数).
如果不使用脚本,有没有更好的方法呢?也许制作一个不需要通过"java"命令调用的可执行文件?
我需要偶尔在缓存目录中使用rmagick创建图像.
然后快速摆脱它们而不丢失视图,我想删除图像文件,同时我的图像类的Ruby实例被破坏或进入垃圾收集.
我必须覆盖什么ClassMethod来为析构函数提供代码?
我们可以将php,perl,python与apache集成并在其中构建站点.
是否也可以使用带有apache的C/C++并在其中构建网站?
我还在浏览一些关于RoR的指南,我在这里部署演示应用程序
我按照说明:
完成Microposts资源后,现在是将存储库推送到GitHub的好时机:
Run Code Online (Sandbox Code Playgroud)$ git add . $ git commit -a -m "Done with the demo app" $ git push
这里发生的错误是推动部分......它输出了这个:
$ git push
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using
git remote add <name> <url>
git push <name>
Run Code Online (Sandbox Code Playgroud)
所以我尝试按照说明执行此命令:
$ git remote add demo_app 'www.github.com/levelone/demo_app'
fatal: remote demo_app already exists.
Run Code Online (Sandbox Code Playgroud)
所以我推:
$ git push demo_app
fatal: 'www.github.com/levelone/demo_app' does not appear to be a git repository
fatal: The …Run Code Online (Sandbox Code Playgroud) 我在ng-repeat块中使用ng-show指令时遇到问题.
布尔值似乎没有正确传递给ng-show ...
为了表明我的意思,这里是我在JSFiddle中做的一个例子的截图:

这是一些示例标记:
<table ng-controller="ActressController" class="table table-bordered table-striped">
<tr ng-repeat="actress in actressList">
<td>
<span class="actress-name">{{ actress.name }}</span>
<h4 ng-show="{ actress.name == 'Scarlett' }">Was in Avengers! <span class="note">(should only appear if Scarlett)</span></h4>
<h2>{{ actress.name == 'Scarlett'}} <span class="note"><-- this statement is correct</span></h2>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
这是一个示例控制器:
function ActressController($scope) {
$scope.actressList = [
{
name: "Angelina"
}, {
name: "Scarlett"
}, {
name: 'Mila'
}, {
name: 'Megan'
}
]
}
Run Code Online (Sandbox Code Playgroud)
关于我可能做错的任何想法?
我有一个远程存储库,我已经提取并从中分支出来.我想让新分支保持最新状态,对master进行更改.我正在考虑下面的工作流程,它是否有意义,或者有更好的方法来做到这一点?
初始分支和结帐:
git checkout master
git pull
git checkout -b my_branch
Run Code Online (Sandbox Code Playgroud)做一些工作my_branch,然后定期:
git checkout master
git pull
git checkout my_branch
git merge master --no-ff
Run Code Online (Sandbox Code Playgroud)根据需要重复步骤2,定期推送到遥控器my_branch.
然后准备好合并时:
git checkout master
git merge my_branch --no-ff
Run Code Online (Sandbox Code Playgroud)
听起来不错?
我知道有一个Java(JLS)的官方文档,我想知道它是否也是PHP语言的情况.我在PHP手册中找到了"语言参考"部分,但它看起来并不像JLS那么详细.
问题是我对PHP有很好的实践知识,但我对于真正发生在幕后的事情一无所知.
如果没有任何官方文件,你能推荐一些好书吗?
git ×2
angularjs ×1
apache ×1
asp.net ×1
binary ×1
c# ×1
c++ ×1
datetime ×1
destructor ×1
executable ×1
factory-bot ×1
git-branch ×1
git-merge ×1
java ×1
javascript ×1
php ×1
push ×1
ruby ×1
scripting ×1
timespan ×1
vb.net ×1