小编Mik*_*ike的帖子

Windows 10上的属性表处理程序

我开发了一个自定义属性表处理程序,可以在Windows 7和Windows 8上正常工作.在Windows 10上,它没有加载.看来Windows 10中的shell扩展注册有变化,但我没有追踪具体细节.

我的属性表处理程序从jpeg文件(.jpe或.jpeg)中读取自定义XMP数据.如果我注册一个新的文件类型(即.photo扩展名)并注册我的处理程序,它按预期工作:

HKCR\.photo\shellex\PropertySheetHandlers\{my class id}
Run Code Online (Sandbox Code Playgroud)

但是,如果我为现有的jpeg文件类型(jpegfile)注册它,则不会加载它:

HKCR\jpegfile\shellex\PropertySheetHandlers\{my class id}
Run Code Online (Sandbox Code Playgroud)

同样,此问题仅发生在Windows 10上.在Windows 7和8上以HKCR\jpegfile密钥类型注册时,处理程序工作正常.任何人都知道Windows 10可能发生了哪些变化?

windows shell-extensions

10
推荐指数
1
解决办法
1011
查看次数

rails 4,全局更改默认表单构建器

我已经对默认表单构建器进行了分类,以添加一些其他方法.示例代码如下.

module ApplicationHelper
    class AppFormBuilder < ActionView::Helpers::FormBuilder
        def coordinates_field(method, options = {})
            options[:readonly] = 'true'
            ....
            @template.text_field(@object_name, method, objectify_options(options))
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

这很好用,但要使用它我必须更改使用该coordinates_field方法的每个表单的视图代码,即

<%= form_for @object, :builder => ApplicationHelper::AppFormBuilder do |f| %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)

听起来理论上可以在全局(config.action_view.default_form_builder)中更改默认表单构建器,但我似乎无法使其工作.这是我尝试过的/config/application.rb:

module Web
  class Application < Rails::Application
    ...
    config.action_view.default_form_builder = "ApplicationHelper::AppFormBuilder"
  end
end
Run Code Online (Sandbox Code Playgroud)

这导致错误未定义方法'new'用于"ApplicationHelper :: AppFormBuilder":当我点击具有表单的视图时的字符串.

如果我反而尝试这个

config.action_view.default_form_builder = ApplicationHelper::AppFormBuilder
Run Code Online (Sandbox Code Playgroud)

应用程序启动时出现错误*config.action_view.default_form_builder = ApplicationHelper :: AppFormBuilder*.

任何人都可以提供有关如何使其工作的指导?

ruby-on-rails ruby-on-rails-4

7
推荐指数
2
解决办法
1410
查看次数

ST_DWithin不使用带非文字参数的索引

我在Amazon RDS上使用PostreSQL 9.3 w/PostGIS 2.1.8.我有一个名为project_location的表,它定义了"geo-fences"(每个都基本上是一个坐标和半径).使用名为"location"的几何列和名为"radius"的双列存储地理围栏.我在location列上有一个空间索引.

CREATE TABLE project_location
(
  ...
  location geography(Point,4326),
  radius double precision NOT NULL,
  ...
)
CREATE INDEX gix_project_location_location 
ON project_location USING gist (location);
Run Code Online (Sandbox Code Playgroud)

该表目前有大约50,000条记录.如果我查询表以查找geo-fence包含一个点的所有project_locations,就像

SELECT COUNT(*) 
FROM project_location 
WHERE ST_DWithin(location, ST_SetSRID(ST_MakePoint(-84.1000, 34.0000),4326)::geography, radius);
Run Code Online (Sandbox Code Playgroud)

我发现没有使用空间索引.EXPLAIN的结果显示如下:

"Aggregate  (cost=11651.97..11651.98 rows=1 width=0)"
"  ->  Seq Scan on project_location  (cost=0.00..11651.97 rows=1 width=0)"
"        Filter: ((location && _st_expand('0101000020E610000066666666660655C00000000000004140'::geography, radius)) AND ('0101000020E610000066666666660655C00000000000004140'::geography && _st_expand(location, radius)) AND _st_dwithin(location, '0101000020E610000066666666660655C00000000000004140'::geography, radius, true))"
Run Code Online (Sandbox Code Playgroud)

但是,如果半径是一个常数值,如下所示

SELECT COUNT(*) 
FROM project_location 
WHERE ST_DWithin(location, ST_SetSRID(ST_MakePoint(-84.1000, 34.0000),4326)::geography, 1000);
Run Code Online (Sandbox Code Playgroud)

空间索引用于EXPLAIN显示

"Aggregate  (cost=8.55..8.56 …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis

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

带有环绕文本的javafx gridpane布局

我在 JavaFX 8 中工作。尝试使用 GridPage 来显示一组属性和值。某些值可能足够长,无法放在一行中。我想包装这些值,但似乎无法弄清楚如何让网格窗格垂直扩展以容纳包装的文本。我基本上想要你在 HTML 表格中看到的行为。不确定我应该使用的 JavaFX 中是否有不同的布局。

Property A    Value A
Property B    Value B
Property C    The Values for property C is so long
              that it wraps
Property D    Value D
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

java javafx

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

如何在无表 Rails 4 模型中添加枚举支持

我正在尝试创建一个不受数据库表支持的模型。本质上,模型表示由数据库支持的模型的特定类型的实例。由 db 支持的模型称为 Schedule,无支持的模型称为 Reservation。

Schedule 模型看起来像这样:

class Schedule < ActiveRecord::Base
  validates :scheduled_date, :presence => true
  ...
  def self.TIME_PERIODS
    @@TIME_PERIODS ||= { time_period_custom: 1, time_period_am: 2, time_period_pm: 3, time_period_all_day: 4 }
  end
  enum time_period: Schedule.TIME_PERIODS
  enum entry_type: { entry_type_reservation: 1, entry_type_blackout: 2 }
  ...
end
Run Code Online (Sandbox Code Playgroud)

Reservation 模型看起来像这样:

class Reservation
  include ActiveModel::Validations
  include ActiveModel::Conversion
  include ActiveModel::Model
  include ActiveRecord::Enum
  extend ActiveModel::Naming

  attr_reader :id, :entry_type
  attr_accessor: :schedule_date, :time_period
  validates :scheduled_date, :presence => true
  ...
  enum time_period: Schedule.TIME_PERIODS
  ...
end
Run Code Online (Sandbox Code Playgroud)

这会产生一个运行时错误:NoMethodError: undefined method …

ruby-on-rails ruby-on-rails-4

5
推荐指数
1
解决办法
933
查看次数

ios 应用程序启动和受保护的数据事件

一段时间以来,我们一直在努力解决 iOS 应用程序中的一个零星问题,似乎偶尔会启动我们的应用程序,但钥匙串尚无法访问。我们还没有找到可靠地重现这一点的方法。

\n\n

与许多应用程序一样,我们使用 kSecAttrAccessible = kSecAttrAccessibleWhenUnlocked 将一些敏感数据(即用户凭据)保存到钥匙串中。应用程序将在启动期间在应用程序委托的 didFinishLaunchingWithOptions 覆盖中从钥匙串中读取这些值。这在大多数情况下都可以正常工作。

\n\n

但有时我们的用户会报告无法读取钥匙串值的问题。如果用户只是终止应用程序并重新启动它,这些值仍然存在并且一切正常。我们的应用程序不在后台运行,因此我无法想到除用户操作之外的任何其他操作启动它的情况,这意味着设备已解锁。

\n\n

我熟悉 application\xe2\x80\x8bProtected\xe2\x80\x8bData\xe2\x80\x8bDid\xe2\x80\x8bBecome\xe2\x80\x8bAvailable 方法,当设备解锁并且诸如钥匙串之类的受保护数据变得可访问。我想我们可以检查 didFinishLaunchingWithOptions 是否 UIApplication.is\xe2\x80\x8bProtected\xe2\x80\x8bData\xe2\x80\x8bAvailable 为 false,如果是的话,则推迟依赖于钥匙串的应用程序初始化部分application\xe2\x80\x8bProtected\xe2\x80\x8bData\xe2\x80\x8bDid\xe2\x80\x8b成为\xe2\x80\x8b可用方法。我总是对编写解决方案而无法重现和测试它持怀疑态度。

\n\n

任何人都可以报告说,他们通过应用程序日志看到了一些实例,其中 iOS 受保护的数据在 didFinishLaunchingWithOptions 方法中尚不可用,但稍后可用?

\n

objective-c keychain ios xcode8

5
推荐指数
1
解决办法
1838
查看次数