小编Joh*_*tta的帖子

查找在Git中删除文件的时间

我有一个带有n次提交的Git存储库.

我有一个我需要的文件,以前曾经在存储库中,我突然寻找并想"哦!那个文件去哪了?"

是否有(系列)Git命令会告诉我"在提交n-13时删除了文件really_needed.txt"?

换句话说,如果不查看每个单独的提交,并且知道我的Git repo对每个文件进行了每次更改,我是否可以快速找到该文件的最后一次提交,以便我可以将其恢复?

git

932
推荐指数
8
解决办法
22万
查看次数

Ruby中没有命名参数?

这很简单,我不敢相信它抓住了我.

def meth(id, options = "options", scope = "scope")
  puts options
end

meth(1, scope = "meh")

-> "meh"
Run Code Online (Sandbox Code Playgroud)

我倾向于使用哈希作为参数选项,因为它是牧群的做法 - 它非常干净.我认为这是标准.今天,经过大约3个小时的寻找bug之后,我追踪到了一个错误,我碰巧正在使用这个假设命名参数将被尊重.他们不是.

所以,我的问题是:在Ruby(1.9.3)中,命名参数是否正式不受尊重,或者这是我缺少的一个副作用?如果他们不是,为什么不呢?

ruby parameters named-parameters

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

多个视图模型之间的状态共享的具体示例(WPF MVVM)

我有一个包含许多对象的WPF/Entity Framework(4.0)项目.我想构建应用程序,以便我可以在视图模型中共享对象选择状态.

例如:我们有汽车,司机,乘客和货物类.我们还有CarList,DriverList等的UserControls以及CarEditor,DriverEditor等的编辑器窗口.此外,我们有所有这些的视图模型(CarListViewModel,Dri​​verListViewModel,CargoEditorViewModel等).这一切都构成了一个可停靠的界面,用户可以在其中打开多个对象列表,编辑器和查看器.

我想要的是如何连接多个视图模型的具体代码示例,以便在CarList中选择汽车将使该汽车在CarEditorView中生效,但也可以在上下文有效的任何其他视图中选择(例如如果有过滤谓词,则为DriverByCarView-或仅为DriverList.

基于这个问题,有许多建议和讨论.似乎占主导地位的两种方法是:

  • 3018307:通过提及消息传递子系统来讨论状态共享
  • 1159035:使用封闭的视图模型讨论状态共享

这些方法中的一种比另一种更好吗?

有没有人以书面或小代码项目的形式有这两种方法的具体例子?

我还在学习WPF,所以对于阅读API基础知识的入门点的建议表示赞赏,但查看代码示例是我经常去的地方.

谢谢


如果有人有兴趣,这里有一些其他类似的讨论:

  • 3816961:讨论根据对象类型返回多个视图模型(即遵循特定接口的任意类型的集合)
  • 1928130:讨论将视图模型聚合为其他视图模型的属性是否是个好主意(例如,由面板视图模型组成的MainWindow视图模型)
  • 1120061:基本讨论是否使用每模型视图模型策略或视图模型每视图元素策略.
  • 4244222:讨论在使用嵌套对象层次结构时是否嵌套视图模型.
  • 4429708:直接讨论视图模型之间的共享集合,但不详细说明.
  • 列表项:讨论在单个视图模型中管理多个选择.

c# data-binding wpf mvvm

31
推荐指数
1
解决办法
8643
查看次数

Scala是否具有类似于Python的dir()的内省能力?

是的,我知道非Pythonist被认为是懒惰的.我问的原因是许多Scala库中仍然缺少文档(例如Scala-dbc,但这并不是我所看到的),如果我能在运行时看到对象/类的属性,我可以在至少弄明白什么是可用的.谢谢.

scala introspection

21
推荐指数
3
解决办法
4584
查看次数

Scala/Java不尊重w3"多余的dtd流量"规范吗?

我是Scala的新手,所以我可能不在此基础上,我想知道问题是否是我的代码.鉴于Scala文件httpparse,简化为:

object Http {
   import java.io.InputStream;
   import java.net.URL;

   def request(urlString:String): (Boolean, InputStream) =
      try {
         val url = new URL(urlString)
         val body = url.openStream
         (true, body)
      }
      catch {
         case ex:Exception => (false, null)
      }
}

object HTTPParse extends Application {
   import scala.xml._;
   import java.net._;

   def fetchAndParseURL(URL:String) = {
      val (true, body) = Http request(URL)
      val xml = XML.load(body) // <-- Error happens here in .load() method
      "True"
   }
}
Run Code Online (Sandbox Code Playgroud)

运行哪个(URL无关紧要,这是一个笑话示例):

scala> HTTPParse.fetchAndParseURL("http://stackoverflow.com")
Run Code Online (Sandbox Code Playgroud)

结果总是:

   java.io.IOException: Server returned HTTP response code: …
Run Code Online (Sandbox Code Playgroud)

java xml w3c dtd scala

15
推荐指数
3
解决办法
3910
查看次数

Ruby相当于Python setattr()

好吧,把我添加到Python程序员的列表中,他们爱上了Ruby,但是有一个挥之不去的PyAddiction.就像关于Python的getattr的帖子一样,我正在寻找Ruby这样做:

setattr(obj, 'attribute', value)
Run Code Online (Sandbox Code Playgroud)

其中obj是一个对象实例,attribute是一个对象属性的名称作为字符串,value是该对象的值.等效代码是:

obj.attribute = value
Run Code Online (Sandbox Code Playgroud)

我假设它是可能的(因为在Python中任何可能的东西现在看起来都更容易),但是找不到它的文档.

ruby

8
推荐指数
1
解决办法
1492
查看次数

Rails时间午夜时间会被打破吗?

我们来看看日期:

1.9.2p320 :008 > Date.today
 => Wed, 03 Oct 2012 
1.9.2p320 :009 > Time.now
 => 2012-10-03 22:32:55 -0400
Run Code Online (Sandbox Code Playgroud)

现在,鉴于午夜时分?

1.9.2p320 :005 > Date.today.midnight
 => Wed, 03 Oct 2012 00:00:00 UTC +00:00 
Run Code Online (Sandbox Code Playgroud)

说得通.但昨天怎么样?

1.9.2p320 :006 > Date.yesterday.midnight
 => Wed, 03 Oct 2012 00:00:00 UTC +00:00 
Run Code Online (Sandbox Code Playgroud)

呃,这没有多大意义.今天午夜和昨天午夜一样?你不能认真!

1.9.2p320 :026 > Date.today.midnight == Date.yesterday.midnight
 => true 
1.9.2p320 :033 > 1.day.ago.midnight == Date.yesterday.midnight
 => true 
1.9.2p320 :034 > 1.day.ago.midnight == Date.today.midnight
 => true 
Run Code Online (Sandbox Code Playgroud)

哦,你是认真的.明天怎么样?

1.9.2p320 :007 > Date.tomorrow.midnight
 => Fri, 05 Oct 2012 00:00:00 …
Run Code Online (Sandbox Code Playgroud)

time timezone ruby-on-rails date utc

7
推荐指数
1
解决办法
2298
查看次数

以KML编程方式创建矢量箭头

有没有人有任何以编程方式将图标绘制为KML中的矢量的实际示例?具体来说,我在给定坐标处具有幅度和方位角的数据,并且我希望基于这些值生成图标(或其他图形元素).

关于如何处理它的一些想法:

  1. 图像目录(强力方式):制作360个不同图像文件的图像控制器(可能批量旋转单个图像),每个图像文件指向相应的方位角.我见过像" Excel to KML " 这样的东西,但我正在寻找可以在程序中使用的代码,而不是Web实用程序.问题:箭头不包含幅度上下文,因此必须是标签.我宁愿动态地拉长箭头.

  2. 在KML中创建线:也许创建一个公式,在坐标点处创建一条原点线,线的长度与大小成比例,并根据方位角成角度.然后会有两条线,可能是30度左右,从前一条线的末端延伸出来以形成箭头.问题:不是单独的图像图标,因此不确定它在KML中的工作方式.还不确定生成此算法有多容易.

  3. 单独的图像生成:也许创建一个使用imagemagick或类似的PHP文件以类似于上面的方法动态生成.png文件,然后使用URI"domain.tld/imagegen.php?magnitude =链接到图标magvalue&方位角= azmvalue".问题:仍然存在实际编写图像生成算法的问题.

所以,问题是:有没有其他人提出程序化矢量(而不仅仅是箭头)生成的解决方案?

algorithm vector kml

6
推荐指数
1
解决办法
4466
查看次数

用Ruby构建"半自然语言"DSL

我有兴趣在Ruby中构建一个用于解析微博更新的DSL.具体来说,我认为我可以将文本转换为Ruby字符串,就像Rails gem允许"4.days.ago"一样.我已经有了将翻译文本的正则表达式代码

@USER_A: give X points to @USER_B for accomplishing some task
@USER_B: take Y points from @USER_A for not giving me enough points
Run Code Online (Sandbox Code Playgroud)

变成类似的东西

Scorekeeper.new.give(x).to("USER_B").for("accomplishing some task").giver("USER_A")
Scorekeeper.new.take(x).from("USER_A").for("not giving me enough points").giver("USER_B")
Run Code Online (Sandbox Code Playgroud)

我可以正式确定更新的语法,以便只提供和解析标准化文本,从而可以巧妙地处理更新.因此,似乎更多的是如何实现DSL类的问题.我有以下存根类(删除所有错误检查并用注释替换一些以最小化粘贴):

class Scorekeeper

  attr_accessor :score, :user, :reason, :sender

  def give(num)
    # Can 'give 4' or can 'give a -5'; ensure 'to' called
    self.score = num
    self
  end

  def take(num)
    # ensure negative and 'from' called
    self.score = num < 0 ? num : num * -1
    self …
Run Code Online (Sandbox Code Playgroud)

ruby regex dsl parsing

5
推荐指数
2
解决办法
1133
查看次数

如何在 C# 中绘制高斯曲线

我有一个包含以下数据的直方图统计条形图。

Count, HistogramBin
    0,    -1615.25
    0,    -1056.42
    0,     -497.48
    1,       61.25
    1,      620.05
    1,     1178.92
    0,     1737.76
    0,     2296.59
Run Code Online (Sandbox Code Playgroud)

我需要根据上述值形成高斯曲线。谁能指导我如何实现同样的目标。

我根据维基百科链接编写了一个函数: https: //en.wikipedia.org/wiki/Gaussian_function

我们的平均值是:340.67 SD:标准差:488.98001098632812

 private DataTable GenerateGaussTable1(DataTable histogramDataTable, 
                                       HistogramValueItem histogramValueDBItem)
    {
      double amplitude = (Average + 3 * Sigma) / 2;
      double mean = Average;
      double sd = Sigma;
      DataTable dt = new DataTable();
      dt.Columns.Add("x", typeof(float));
      dt.Columns.Add("Y", typeof(float));
      foreach (DataRow row in histogramDataTable.Rows)// top provided data
      {
        double x = Convert.ToDouble(row[1]) / 2;
        double var1 = 1 / sd …
Run Code Online (Sandbox Code Playgroud)

c#

5
推荐指数
2
解决办法
6664
查看次数