问题列表 - 第46761页

Clojure:从模板生成函数

我有一个通用转换库的以下代码:

(defn using-format [format] {:format format})

(defn- parse-date [str format]
  (.parse (java.text.SimpleDateFormat. format) str))

(defn string-to-date
  ([str] 
    (string-to-date str (using-format "yyyy-MM-dd")))
  ([str conversion-params] 
    (parse-date str (:format (merge (using-format "yyyy-MM-dd") conversion-params)))))
Run Code Online (Sandbox Code Playgroud)

我需要能够像这样调用它:

(string-to-date "2011-02-17")

(string-to-date "2/17/2011" (using-format "M/d/yyyy"))

(string-to-date "2/17/2011" {})
Run Code Online (Sandbox Code Playgroud)

第三种情况有些问题:地图不一定包含:format对功能至关重要的键.这就是merge默认值的原因.

我需要有十几个类似的函数用于所有其他类型之间的转换.是否有一种更优雅的方式,不需要我merge在每个功能中复制粘贴,使用等?

理想情况下,寻找这样的东西(宏?):

(defn string-to-date
  (wrap
     (fn [str conversion-params] 
       (parse-date str (:format conversion-params))) ; implementation
     {:format "yyyy-MM-dd"})) ; default conversion-params
Run Code Online (Sandbox Code Playgroud)

...这将产生一个重载函数(一元和二元),merge在第一个例子中二进制具有相同的功能.

clojure

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

范围内的加法和减法

您将如何在JavaScript中编写以下内容:

    Row-=21;
    if (Row < 1) {
        Row = 1;
    }
Run Code Online (Sandbox Code Playgroud)

javascript

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

Delphi - 代理设计模式 - 接口问题

嗨我正在尝试在Delphi中设计模式,因为我在Delphi中找不到我喜欢的参考资料,我正在转换我在O'Reilly C#3.0设计模式书中的模式.但这不是问题.我已经从本书中创建了代理模式,但是有一些Delphi接口,构造函数和析构函数以及一般对象生命周期和行为的概念,我显然不明白.首先,我将发布我的代码:

unit Unit2;  

interface  

uses
  SysUtils;

type
  ISubject = interface
  ['{78E26A3C-A657-4327-93CB-F3EB175AF85A}']
  function Request(): string;
end;

  TSubject = class
  public
    function Request(): string;
    constructor Create();
  end;

  TProxy = class (TInterfacedObject, ISubject)
  private
    FSubject: TSubject;
  public
    function Request(): String;
    destructor Destroy(); override;
  end;

  TProtectionProxy = class (TInterfacedObject, ISubject)
  private
    FSubject: TSubject;
    FPassword: String;
  public
    constructor Create();
    destructor Destroy(); override;
    function Authenticate(supplied: String): String;
    function Request(): String;
  end;

implementation

{ TSubjectAccessor.TProxy }

destructor TProxy.Destroy;
begin
  if Assigned(Self.FSubject) then
    FreeAndNil(Self.FSubject);
  inherited;
end;

function …
Run Code Online (Sandbox Code Playgroud)

delphi oop design-patterns interface

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

公开WCF 4.0 Rest模板服务的元数据

可能遗漏了一些非常基本的东西.我创建了一个WCF 4.0 Rest服务.当我从浏览器访问网址时,它没有问题,我正在回复我想要的东西.

但是现在我想从客户端mvc应用程序中使用该服务(它也将被其他非.net平台使用,这就是为什么它首先是一个休息服务).

问题是如何获得服务引用,以便我可以开始在我的c#代码中使用它?使用新的最小WCF .net 4配置方法并且没有服务契约的接口,我不知道如何指定mex端点.最终,我不想在生产过程中使用mex端点,只是在开发过程中.我希望能够指定我的所有服务(在一个应用程序中大约10个)都有一个端点和一个小的配置,vs2010 .config转换只是在我发布时撕掉了.

wcf wcf-client wcf-rest

3
推荐指数
1
解决办法
3634
查看次数

动画脉冲UILabel动画?

我试图为UILabel上的文字设置颜色的动画来从:[黑色]到[白色]到[黑色]并重复.

- (void)timerFlash:(NSTimer *)timer {
[[self navTitle] setTextColor:[[UIColor whiteColor] colorWithAlphaComponent:0.0]];
[UIView animateWithDuration:1
                      delay:0 
                    options:UIViewAnimationOptionAllowUserInteraction 
                 animations:^{[[self navTitle] setTextColor:[[UIColor whiteColor] colorWithAlphaComponent:1.0]];} 
                 completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

.

[self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFlash:) userInfo:nil repeats:YES]];
Run Code Online (Sandbox Code Playgroud)

首先,我不确定我的方法,我的计划(如上所示)是设置动画块并使用重复的NSTimer调用它直到取消.

我的第二个问题(正如你在上面看到的)是我从黑色(alpha 0)到白色(alpha 1)的动画,但我不知道如何再次动画回黑色,所以动画无缝循环

基本上我想要的是在UILabel上脉冲的文本颜色,直到用户按下按钮继续.

EDIT_001:

我遇到了麻烦,因为你不能动画[UILabel setColor:]你可以动画[UILabel setAlpha:]所以我要去试试.

EDIT_002:

- (void)timerFlash:(NSTimer *)timer {
    [[self navTitle] setAlpha:0.5];
    [UIView animateWithDuration:2 
                          delay:0 
                        options:UIViewAnimationOptionAllowUserInteraction 
                     animations:^{[[self navTitle] setAlpha:0.9];} 
                     completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

这是有效的(顺便说一句:我确实希望它停止,这就是为什么我把它连接到NSTimer,所以我可以取消它)唯一的事情就是这从midGray到nearWhite的动画然后弹出.有谁知道我会如何动画从nearWhite到midGray,所以我得到了一个很好的平滑循环? 在此输入图像描述

EDIT_003 :(解决方案)

Dave DeLong(见下文)建议的代码在修改为使用CALayer不透明度样式属性时确实有效:

UILabel *navTitle;
@property(nonatomic, retain) UILabel *navTitle;
Run Code Online (Sandbox Code Playgroud)

.

// ADD ANIMATION
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"];
[anim setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[anim setFromValue:[NSNumber …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c

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

为什么嵌套锁不会导致死锁?

为什么这段代码不会造成死锁?

   private static readonly object a = new object();
Run Code Online (Sandbox Code Playgroud)

...

   lock(a)
   {
      lock(a)
      {
         ....
      }
   }
Run Code Online (Sandbox Code Playgroud)

c# asp.net deadlock

49
推荐指数
3
解决办法
1万
查看次数

如何将iPhone核心数据与Web服务器同步,然后推送到其他设备?

我一直在研究一种方法,用于在多个设备(如iPad或Mac)之间同步存储在iPhone应用程序中的核心数据.在iOS上使用Core Data的同步框架并不多(如果有的话).但是,我一直在考虑以下概念:

  1. 对本地核心数据存储进行更改,并保存更改.(a)如果设备在线,它会尝试将变更集发送到服务器,包括发送变更集的设备的设备ID.(b)如果变更集未到达服务器,或者设备未联机,则应用程序会将更改集添加到队列中以在其联机时发送.
  2. 位于云中的服务器将其接收的特定更改集与其主数据库合并.
  3. 在云服务器上合并更改集(或更改集队列)后,服务器会使用某种轮询系统将所有这些更改集推送到向服务器注册的其他设备.(我想使用Apple的推送服务,但显然根据评论,这不是一个可行的系统.)

我需要考虑什么花哨的东西吗?我查看了REST框架,例如ObjectiveResource,Core ResourceRestfulCoreData.当然,这些都与Ruby on Rails一起使用,我并不依赖它,但它是一个开始的地方.我对我的解决方案的主要要求是:

  1. 任何更改都应该在后台发送而不会暂停主线程.
  2. 它应该使用尽可能少的带宽.

我考虑过一些挑战:

  1. 确保服务器上附加了不同设备上不同数据存储的对象ID.也就是说,我将有一个对象ID和设备ID表,它们通过对存储在数据库中的对象的引用来绑定.我将有一条记录(DatabaseId [此表是唯一的],ObjectId [整个数据库中的项目唯一],Datafield1,Datafield2),ObjectId字段将引用另一个表AllObjects:(ObjectId,DeviceId,DeviceObjectId).然后,当设备推送更改集时,它将从本地数据存储中的核心数据对象传递设备Id和objectId.然后我的云服务器将检查AllObjects表中的objectId和设备ID,并找到要在初始表中更改的记录.
  2. 所有更改都应加上时间戳,以便合并它们.
  3. 设备必须轮询服务器,而不会耗尽太多电池.
  4. 如果/当从服务器收到更改时,本地设备还需要更新内存中保存的任何内容.

还有什么我在这里失踪的吗?我应该考虑哪些框架才能实现这一目标?

iphone sync core-data ios data-synchronization

291
推荐指数
7
解决办法
9万
查看次数

Facebook与Facebook游戏的Flash与HTML5 - 商业视角

我正处于构建Facebook游戏的计划和学习阶段.在过去的一年里,我最重要的问题是"Flash还是HTML5?".而不是试图决定答案,我认为我会给市场更多的时间来成熟并学习如何设计游戏以及如何管理服务器元素.

在过去的一年里,我已经吞噬了数千页有关游戏开发和业务开发的文章,同时在AS3,python,php,C#和javascript中获得了稳固的基础.所以,我最感兴趣的是选择一个最适合这项工作的系统,而不是,例如,开始假设游戏逻辑将在python中,因为这是我最喜欢的.

游戏的核心是战略游戏,除了标准的Facebook"邀请所有朋友"功能外,我还计划广泛使用许多手机.由于主题元素,图形不会华而不实,并且在大多数地方会相当平坦,而不是像farmville或其他Flash Facebook游戏那样的3D等距.

因此从技术角度来看,HTML5没有任何真正的优势,我可以看到闪存,闪存也没有任何真正的优势超过HTML5.如果你看到一个人比另一个人有明显的优势,那么我很乐意在你的评论中听到这一点.

我有五个主要问题需要您的意见:

1)考虑到未来的市场趋势,哪个平台更适合构建Facebook游戏?
2)哪个平台有更好的内在元素来帮助防止作弊?(比如flash被编译成.swf vs javascript是纯文本的)
3)对于未来招聘的最佳游戏开发人才,哪个平台最具吸引力?
4)哪个平台最容易从一个游戏中获取技术并将其用于其他未来的游戏?(比如在flash中开发等距图形)
5)哪个平台最容易与团队一起开发?

flash html5 facebook

4
推荐指数
1
解决办法
5758
查看次数

如何获得当前高度为0的WPF UI元素的所需高度?

我的最终目标是在两个UserControl之间设置大小变化的动画.我试图实现这一目标的方式产生了一个主要问题.

我从一个包含一些基本文本和图标显示的DataTemplate开始,一个高度设置为0的'edit'UserControl和一个编辑按钮.编辑UserControl在GridRow中,Height ="Auto",因此它也以高度0开始.按钮具有由按钮单击触发的DoubleAnimation,用于将UserControl的高度设置为0到300.这一切都有效正好.这是一个简化的代码示例.

<DataTemplate x:Key="UserTemplate" DataType="{x:Type dataTypes:User}">
...
<controls:UserView Grid.Row="1" Grid.ColumnSpan="5" x:Name="EditRow" 
    DataContext="{Binding}" Height="0" />
<controls:UserEditor Grid.Row="2" Grid.ColumnSpan="5" x:Name="EditRow" 
    DataContext="{Binding}" Height="0" />
<Button Grid.Row="0" Grid.Column="4" Name="Edit" Style="{StaticResource ButtonStyle}" 
    ToolTip="Edit user" Click="Button_Click">
    <Image Source="/SolutionName;component/Images/Edit.png" Stretch="None" />
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Name="EditRowHeightAnimation" 
    Storyboard.TargetName="EditRow" Storyboard.TargetProperty="Height" From="0" 
    To="300" Duration="00:00:0.5" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>
...
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

问题是编辑UserControl不是300像素高,我不知道它在设计时的高度.我尝试了以下,但它不起作用.

<DoubleAnimation Name="EditRowHeightAnimation" Storyboard.TargetName="EditRow"
    Storyboard.TargetProperty="Height" From="0" To="{Binding DesiredSize.Height, 
    ElementName=EditRow}" Duration="00:00:0.5" />
Run Code Online (Sandbox Code Playgroud)

我也尝试从后面的代码编辑UserControl上调用Measure()和UpdateLayout().我注释掉了按钮单击触发器和xaml动画,并在代码后面添加了一个......现在这种方式有效,但我总是得到相同(错误的)DesiredSize.也就是说,UserControl高度会变得动画,但只是到了错误的高度.这是按钮单击处理程序代码.

private void Button_Click(object sender, RoutedEventArgs e)
{
    User currentUser = (User)CollectionViewSource.GetDefaultView(Users).CurrentItem;
    ListBoxItem listBoxItem …
Run Code Online (Sandbox Code Playgroud)

wpf animation user-controls

4
推荐指数
1
解决办法
2942
查看次数

Android布局属性的高级说明?

我正在努力学习如何在Android中正确布局组件.我是一名经验丰富的CSS/MXML开发人员,我很难完全理解Android组件中的布局属性.

有一点是我不确定这些之间的区别:

  • layout_margin与padding
  • layout_gravity vs. gravity与ignoreGravity

你应该使用线性,表格或相对布局来使用其中一个吗?我想学习的一个例子是布局上的整体边距,其中包含与屏幕顶部/中部/底部相关的独立组件.sdk文档是一个良好的开端,但它们并没有显示在不同情况下的工作方式.

关于在哪里学习更复杂/全面的布局设计的任何提示?

android android-layout android-styles

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