小编Dou*_*kem的帖子

ANT如何递归删除只有空目录

有谁知道如何用ANT递归删除"空"目录(空包括仅包含".svn"等的目录).

我知道ant允许你"includeEmptyDirs = true"但我希望它只删除一个目录,如果它是空的(实际上我可能需要走上递归链并删除它所包含的目录,如果它现在是空).

基本上作为构建过程的一部分,我们复制一组目录,其中包含一堆包含各种XML和数据的其他嵌套目录,当我们移动该数据的位置时,我们的"复制"和签入构建过程并不真正有效,因为我们正在检查另一个源控件(SVN),擦除目录并复制也不是一个选项(我们要吹掉".svn"文件夹).

在我们复制新版本之前,我可以通过执行以下操作"清除"目录:

<delete>
  <fileset dir="${webplatformBin}" includes="**/*"/>
</delete>
Run Code Online (Sandbox Code Playgroud)

这会将每个目录(带有".svn")留作空目录,然后复制新文件.复制之后,我不确定如何清除剩下的空目录(如果我们已完全移动到顶级数据目录所在的位置等).

例如,如果我有/projectA/data/localization/text.xml文件并将其移动到/projectB/data/localization/text.xml,我最终会得到一个空的文件夹/ p​​rojectA/data/localization /(只包含.svn文件夹).

ant build-process

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

[RemoteClass]如何在Flex Actionscript中工作,我可以将它用于自定义数据绑定吗?

Actionscript支持在BlazeDS中使用的[RemoteClass]元数据标记,以提供数据绑定提示,以便将AMF二进制对象从Java编组到BlazeDS.

例如:

Java: 包样本;

public class UserInfo
{
    private String userName;

    public String getUserName()
    {
        return userName;
    }

    public void setUserName(String value)
    {
        userName = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

动作:

[Bindable]
[RemoteClass(alias="sample.UserInfo")]
public class UserInfo
{
    public var userName:String=”";
}
Run Code Online (Sandbox Code Playgroud)

在BlazeDS框架中如何实现[RemoteClass],你是否可以覆盖该行为并提供可以绑定到Actionscript [Bindable],[RemoteClass]类的自定义数据绑定远程处理框架(例如,JSON消息传递系统) ?

apache-flex data-binding remoting actionscript blazeds

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

Facebook连接显示邀请朋友对话框并在完成时关闭

我正在尝试创建一个Facebook Connect应用程序,使用Facebook的Javascript API(通过FBMLPopupDialog)在页面中显示朋友邀请对话框.

问题是显示您使用的朋友邀请对话框 多朋友表单,需要action ="url"属性,该属性表示在用户完成或跳过表单时将页面重定向到的URL.问题是我想关闭FBMLPopupDialog(就像用户只是点击弹出对话框中的'X'按钮一样).我能做的最好的事情是将用户重定向回他们所在的页面基本上是重新加载,但是他们失去了所有AJAX/Flash应用程序状态.

我想知道是否有任何Facebook Connect开发人员遇到这个问题并且有一个很好的方法来简单地在他们的网站中显示朋友邀请"灯箱"对话框,他们不想在用户完成时"刷新"或"重定向" .

facebook connect JS API提供了一个FB.Connect.inviteConnectUsers,它提供了一个很好的对话框,但只连接了你的应用程序的现有用户,这些用户也有一个Facebook帐户但没有连接.

http://bugs.developers.facebook.com/show_bug.cgi?id=4916

function fb_inviteFriends() {
                //Invite users
                log("Inviting users...");
        FB.Connect.requireSession( 
            function() { //Connect succes

                var uid = FB.Facebook.apiClient.get_session().uid;
                log('FB CONNECT SUCCESS: ' + uid);
                //Invite users
                log("Inviting users...");
                //Update server with connected account
                updateAccountFacebookUID();
                var fbml = fb_getInviteFBML() ;
                var dialog = new FB.UI. FBMLPopupDialog("Weblings Invite", fbml) ;
                //dialog.setFBMLContent(fbml);
                dialog.setContentWidth(650);
                dialog.setContentHeight(450);
                dialog.show();

            },
            //Connect cancelled
            function()  {
                //User cancelled the connect
                log("FB Connect cancelled:"); …
Run Code Online (Sandbox Code Playgroud)

javascript facebook social-networking

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

在XStream中,有一种更好的方法可以在JSON和Java中对List <Object>进行编组/解组

我正在使用XStream和JETTISON的Stax JSON序列化程序向/从JSON javascripts客户端和Java Web应用程序发送/接收消息.

我希望能够创建一个发送到服务器的对象列表,并将其正确编组到Java中,但XStream和JSON期望它的格式非常不直观,并且需要我们的javascript库跳过箍.

[使用GSON库编辑更新问题]我试图使用GSON库但是当我只有它期望泛型超类时,它不能反序列化具体对象(XStream和Jettison处理这个因为类型信息被烘焙到序列化中).

GSON FAQ声明收集限制:

收藏限制

可以序列化任意对象的集合,但不能从中反序列化

因为用户无法指示结果对象的类型

在反序列化时,Collection必须是特定的泛型类型

也许我正在使用糟糕的java实践,但我如何构建一个JSON到Java消息传递框架,以JSON格式发送/接收各种具体的Message对象?

例如,这失败了:

public static void main(String[] args) {
    Gson gson = new Gson();

    MockMessage mock1 = new MockMessage();
    MockMessage mock2 = new MockMessage();
    MockMessageOther mock3 = new MockMessageOther();

    List<MockMessage> messages = new ArrayList<MockMessage>();
    messages.add(mock1);
    messages.add(mock2);
    messages.add(mock3);

    String jsonString = gson.toJson(messages);

    //JSON list format is non-intuitive single element array with class name fields
    System.out.println(jsonString);
    List gsonJSONUnmarshalledMessages = (List)gson.fromJson(jsonString, List.class);
    //This will print …
Run Code Online (Sandbox Code Playgroud)

java ajax serialization json xstream

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

iphone camerOverlay用于Alternate Reality应用程序

有没有人知道如何拍摄在iphone相机上拍摄的图像,并进行一些图像处理(例如边缘检测,角化),然后在原始图像上覆盖处理图像的部分(例如,仅突出显示的边缘).

更一般地说,我如何创建具有透明度的UImage(我只是缩放图像并用alpha值覆盖它,UIImage是否像GIF一样支持透明度).我想你可以将UIImagePickerController与后台线程结合起来,后台线程获取 UIImagePickerController视图的"屏幕截图"并对其进行图像处理以检测各种对象并提供叠加增强现实显示.

有一个开源的简单图像处理库为iPhone.该演示显示了拍摄原始照片(数独板)的示例,然后将检测到的对象覆盖在原始照片中.

他们在博客上解释了一些高级技术.

iphone graphics image-processing augmented-reality

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

用于Java和Objective-C游戏的实时游戏网络库

我正在寻找使用专用Java服务器和iphone客户端以及Java桌面客户端构建的实时游戏.Java和iphone(特别是可靠的UDP)存在哪些可用于实时多人游戏开发的高性能网络传输库?

大多数基于实时动作的游戏(Counter-Strike,Left4Dead,Quake III)的一般建议是使用UDP/IP传输协议发送消息作为"不可靠"的数据包,支持TCP的"保证"传送(因为问题)有重发和延迟问题,你不能轻易控制).

  • 半寿命源引擎网络概述
  • Quake III网络 另一个建议是建立一个可靠的UDP协议,让你"可选"保证UDP数据包的传送(虽然仍然无法保证传输顺序,如TCP流,只要你的游戏可以处理乱序包).

Project Darkstar是一个带有C++绑定的Java MMO服务器(对于通用多人游戏的轻量级实时网络库来说有点重).

我见过用C语言编写的可靠UDP库: - Enet - 可靠的UDP库 - Cocoa AsyncSocket

udp network-programming real-time

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

Hibernate c3p0连接池没有超时空闲连接

我们有一个连接到MySQL 5数据库的java服务器,使用Hibernate作为我们的持久层,它使用c3p0进行数据库连接池.

我试过跟随c3p0和hibernate文档:

我们的生产服务器上出现错误,说明:

...引起:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许任何操作.由于基础异常/错误,连接被隐式关闭:

开始没有异常了

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException

消息:从服务器成功收到的最后一个数据包是45000秒前.成功发送到服务器的最后一个数据包是45000秒前,这比服务器配置的'wait_timeout'值长.您应该考虑在应用程序中使用之前过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用Connector/J连接属性"autoReconnect = true"来避免此问题.

堆栈跟踪:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功收到的最后一个数据包是45000秒前.成功发送到服务器的最后一个数据包是45000秒前,这比服务器配置的'wait_timeout'值长.您应该考虑在应用程序中使用之前过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用Connector/J连接属性"autoReconnect = true"来避免此问题.

我们的c3p0连接池属性设置如下:

hibernate.c3p0.max_size=10
hibernate.c3p0.min_size=1
hibernate.c3p0.timeout=5000
hibernate.c3p0.idle_test_period=300
hibernate.c3p0.max_statements=100
hibernate.c3p0.acquire_increment=2
Run Code Online (Sandbox Code Playgroud)

MySQL默认wait_timetout默认值为28800秒(8小时),所报告的错误是说,它已经超过45000秒(约12.5小时).虽然c3p0配置声明它将"超时"5000秒后未使用的空闲连接并且它将每隔300秒检查一次,因此空闲连接永远不会超过5299秒?

我通过设置我的开发人员MySQL(Windows上的my.ini,Unix上的my.cnf)wait_timeout = 60并将c3p0空闲超时值降低到60秒以下来进行本地测试,它将正确地超时空闲连接并创建新连接.我还检查以确保我们没有泄漏数据库连接并保持连接,并且它看起来不是我们的.

这是我在开发人员环境中用来测试的c3p0.properties文件,以确保c3p0正确处理连接.

hibernate.properties(使用MySQL wait_timeout = 60进行测试)

hibernate.c3p0.max_size=10
hibernate.c3p0.min_size=1
hibernate.c3p0.timeout=20
hibernate.c3p0.max_statements=100
hibernate.c3p0.idle_test_period=5
hibernate.c3p0.acquire_increment=2
Run Code Online (Sandbox Code Playgroud)

c3p0.properties

com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=ALL
com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
c3p0.debugUnreturnedConnectionStackTraces=true
c3p0.unreturnedConnectionTimeout=10
Run Code Online (Sandbox Code Playgroud)

database hibernate database-connection connection-pooling c3p0

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

使用Google AppEngine作为个人网站的"缓存"(wordpress blogs,wiki)

我读了一篇独立游戏开发者的文章,他正在使用谷歌AppEngine来缓存他的主站点和博客,以保护在流量高峰期间提供高可用性(Digg,Slashdot效果).

Wolfire Blog - 面向独立开发者的Google App Engine

关于他们在Google AppEngine上使用Python开发的用户缓存网站的确切内容,并没有太多细节.我能找到的唯一细节是AppEngine python应用程序通过RSS提要阅读后端wordpress文章:

Wordpress在专用服务器上运行,我们通过RSS(App Engine部分)将其导入www.wolfire.com.尽管有一天要做的事情,倾倒Wordpress完全在我的名单上.;)

有没有人知道任何开源Python或Java Web框架,您可以使用这些框架来自定义缓存可以在Google AppEngine上构建和部署的网站,以充当Web内容的"可扩展"提供程序?

我正在使用名为bluehost的"Ok"共享托管服务来托管我的wordpress博客,我希望能够将我的博客放在一个单独的域(blog.ddaniels.net)上并在www上托管google app-engine .ddaniels.net即指向blog.ddaniels.net.

这可以扩展到几乎任何类型的网站,你仍然需要链接到动态内容指向原始主机(对于诸如评论和编辑维基页面等,基本上任何HTTP PUT类型操作).

我假设你基本上需要一个Java或Python框架,你可以:

  1. 配置您的后端主机,例如blog.yourname.com

  2. 将Google App Engine框架配置为www.yourname.com(Google App Engine映射到您的域的详细信息,关键是您必须使用子域,"www"是子域)

  3. 在首次访问页面时(或在到期时间之后),HTTP从备份主机获取页面并将其缓存在Google AppEngine上

python java google-app-engine caching

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

Hibernate二级缓存ObjectNotFoundException,具有大量并发事务

我们有一个Java应用程序,它使用MySQL,Hibernate(3.5.1-Final)和EHcache(1.2.3)作为我们的二级缓存.

我们的hibernate.properties隔离级别是Read-committed isolation = 2

# 2-Read committed isolation 
hibernate.connection.isolation=2
Run Code Online (Sandbox Code Playgroud)

在大量并发事务中,我们看到一个问题,即加载时某些集合(数据库关联)​​将抛出ObjectNotFoundException,并且看起来第二级缓存正在返回该集合的旧副本.

我们有许多不同类型的交易来访问这个集合(只读取),只有一些会添加/删除它的项目.

我们在单个事务负载或甚至中等事务负载(10 - 20个并发连接)下都没有看到此问题.

例如,我们有一个Character实体:

@Entity
@Table(name = "CHARACTERS")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Character extends AbstractCharacter implements Serializable {
...
    @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
    @OneToMany(mappedBy = "character", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private Set<CharacterItem> items;
Run Code Online (Sandbox Code Playgroud)

我们正在通过从包含它们的集合中删除实体并调用session.delete()来删除实体时正确维护对象图.

    character.getItems().remove(characterItem);
    session.delete(characterItem); 
Run Code Online (Sandbox Code Playgroud)

我们尝试过更改Set项目; CacheConcurrencyStrategy来自:

@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<CharacterItem> items;
Run Code Online (Sandbox Code Playgroud)

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private Set<CharacterItem> items;
Run Code Online (Sandbox Code Playgroud)

没有运气.

我们不使用数据库锁,而是使用乐观并发控制来捕获和重试冲突的事务.

目前我们只能看到两个解决方案:

  1. 尝试捕获ObjectNotFoundException并尝试智能地逐出集合(尽管在异常中似乎没有足够的上下文)

  2. 在items集合上使用@NotFound(action = NotFoundAction.IGNORE)注释,它将忽略而不抛出ObjectNotFoundException(但是我们关注它如何与二级缓存一起工作并确保它正在查看正确的数据) .

我希望能有一个@NotFound(动作= …

java concurrency hibernate ehcache second-level-cache

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

使用GenerationType.TABLE在重新启动时Hibernate重复主键

我们遇到了一个问题,我们有使用GenerationType.TABLE生成主键的Event子类,当我们重新启动服务器时,我们会遇到重复的主键错误.

我们正在使用SQL Server和Hibernate版本3.5.1-Final.

这是我们的Hibernate注释的样子:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Event {

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private long eventID;
Run Code Online (Sandbox Code Playgroud)

我们没有指定allocationSize,因此我们使用默认值.hibernate序列表确实递增但似乎在重新启动它重用已经使用过的ID.

java sql sql-server orm hibernate

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