我刚刚遇到了一个棘手的问题......
这是我的故事:
我的设备是三星Galaxy Note,通常,它以3264*2448像素的分辨率拍摄照片.我喜欢精美的图片,以便找到详细的信息,但在这里我讨厌它,因为它在Android中处理起来很大.我可以阅读并显示这个大分辨率的图像,我需要在它上面画线,然后我需要将图片和线条保存到png.令我头疼的是,当我尝试创建一个像这样的可变位图时,我的Android总是给我一些memery异常:
Bitmap bmp = Bitmap.createBitmap(3264, 2448, Config.RGB_565);
Canvas cv = new Canvas(bmp);
//draw a line and save and restore canvas
// I found an alternative solution yet proven to be uncorrect:
myImageView.setDrawingCacheEnabled(true);
myImageView.buildDrawingCache(true);
Bitmap bmp = myImageView.getDrawingCache();
//save bmp to png
Run Code Online (Sandbox Code Playgroud)
当...的时候
bmp.width * bmp.height * 4 > getScaledMaximumDrawingCacheSize()
Run Code Online (Sandbox Code Playgroud)
异常跳出来.我测试过myImageView.measure(...),并myImageView.layout(...),并没有为我工作.(当我使用较小的图像测试相同的代码时,情况很好)
任何专家都知道如何解决这个问题或向我提出解决方案?谢谢!
我想阅读文件并处理它们.每次迭代都处理一个文档.
哪种代码更好?
1.
BufferedReader br;
for(File f : files)
{
br = new BufferedReader(......);
......
}
Run Code Online (Sandbox Code Playgroud)
2.
for(File f : files)
{
BufferedReader br = new BufferedReader(......);
......
}
Run Code Online (Sandbox Code Playgroud)
我的观点是哪一个在空间和速度方面更有效率?
我再次看到这句话:
此处提供了可包含在项目的.classpath中的.classpath文件片段(即链接).请仅使用您实际需要的classpathentry(详见下文).
这些句子意味着什么?如何在eclipse中将该代码片段添加到我的classpath文件中?
请帮忙.
我是CUDA编程的新手,我完全陷入困境.当我尝试运行提供的deviceQuery实用程序或其中一个示例应用程序时,我收到以下错误:
cudaGetDeviceCount returned 38
no CUDA-capable device is detected.
Run Code Online (Sandbox Code Playgroud)
我使用的是Windows 7,64位.我安装了Visual Studio 2012,然后安装了CUDA 5.0 64位.我的显卡是NVIDIA GeForce GTS 250.今天我去了NVIDIA网站并重新安装了该卡的最新驱动程序.
除了"确保安装了正在运行的驱动程序"之外,我在Windows中找不到任何对此错误的支持.有没有人知道什么可能是错的?
前段时间我开发了一个小的局域网聊天应用程序.在Java中允许与其他主机聊天,发送图像等.虽然它是为了娱乐而创建的,但现在它被用于我工作的地方.
目前,应用程序上没有"聊天服务器".每个客户注册,更新它的状态等等(我喜欢对称设计的想法,而不依赖于在其他机器上运行的服务器).
相反,每个主机都是一个客户端/服务器,它有一个hosts.properties文件,其中包含其他主机的主机名,并且 - 例如 - 在发送大量消息/图像/其他内容时向每个主机广播.
一开始只有几个主机,所以这个hosts.properties文件不是问题.但随着用户数量的增加,更新该文件的需求有点令人生畏.所以现在我决定摆脱它,每次应用程序.启动,动态地找到其他活动主机.
但是,我找不到正确的实现方法.我尝试启动不同的线程,每个线程都在一个已知的IP地址范围内搜索其他主机.像这样的东西(为了便于阅读而简化):
/** HostsLocator */
public static void searchForHosts(boolean waitToEnd) {
for (int i=0; i < MAX_IP; i+= MAX_IP / threads) {
HostsLocator detector = new HostsLocator(i, i+(MAX_IP / threads - 1)); // range: from - to
new Thread(detector).start();
}
}
public void run() {
for (int i=from; i<=to; i++)
findHosts( maskAddress + Integer.toString(i) );
}
public static boolean findHosts(String IP) {
InetAddress address = InetAddress.getByName(IP);
if …Run Code Online (Sandbox Code Playgroud) 我正在制作一个脚本原型,该脚本创建具有四天时间限制的大型 SQLite 数据库。在脚本完成之前达到时间限制并且将执行 connection.commit() 命令。脚本被删除,数据库连接终止,但日志仍在创建数据库的文件目录中。
我想提交现有的日志,看看当前的脚本是否在正确的轨道上。最初我只是尝试(在 iPython 上使用 Python sqlite3 模块):
connection = sqlite3.connect('mydatabase')
connection.commit()
Run Code Online (Sandbox Code Playgroud)
但我怀疑我需要指定我想提交现有的日志。我尝试在 commit() 中将日志名称作为参数传递,但 commit() 在 sqlite3 Python 模块中不接受参数。
将来我会逐渐增加 .commit()
实际上,问题不在于如何做,而是如果这是一个设计错误.我很担心,因为我已经阅读了很多关于在WS中仅使用标准数据类型的内容.但是,我实现一个接收HashMap并使用nuSoap从PHP填充该参数没有问题.
我有一个带有这个成员的ParameterBean类(当然还有getter和setter),其中包含一个HashMap.
private int ID;
private String value;
private String name;
private HashMap<Integer, String> map = new HashMap<Integer, String>();
Run Code Online (Sandbox Code Playgroud)
以及从此类接收实例的服务.然后从PHP客户端我调用:
$map = array(1 => 'Foo', 2 => 'Bar');
$paramsp = array(
'ID' => '1',
'value' => 'Some Value',
'name' => 'A Name',
'map' => $map
);
$params = array($paramsp);
$resp = $client->call('test',$params);
print_r($client->response);
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力!问题是:这不赞成吗?这会在某种程度上导致未来的头痛吗?
我被要求实施一个"访问策略"来限制与数据库直接连接的应用程序(不是Web应用程序)中的证书过程的并发执行量.
应用程序在多台计算机上运行,如果多于用户尝试调用该进程,则在给定时间只允许执行一次,另一次必须返回错误消息(不等待第一次执行结束).
虽然我使用的是Java/Postgres,但这是一个普遍的问题.
鉴于我在多台机器上运行相同的应用程序,我能想到的最简单的解决方案是实现某种"数据库标志".
检查流程当前是否处于活动状态:
SELECT Active FROM Process
Run Code Online (Sandbox Code Playgroud)
如果它处于活动状态,则返回"并发访问策略错误".如果没有,请激活它:
UPDATE Process SET Active = 'Y'
Run Code Online (Sandbox Code Playgroud)
执行完成后,只需更新活动标志:
UPDATE Process SET Active = 'N'
Run Code Online (Sandbox Code Playgroud)
但是,我遇到了一个重大问题:
有任何想法吗?
所以我正在开发一个具有多个客户端的应用程序.在每种情况下,用户可以访问具有不同角色的多个客户端.例如,用户A具有ROLE_XX用于客户端C1,但ROLE_YY为客户端C2.
据我所知,FosUserBundle将用户的角色存储在列角色(默认表fos_user)中,因此该结构不适合我的需要.
我已经阅读了与角色管理相关的文档,但没有任何相关内容,所以我猜这是超出FosUserBundle范围的功能?
所以我在考虑创建一个与它们相关的附加表(客户端,用户,角色),但由于我根本不是FOS专家,所以我真的不知道这是否是正确的方法.或者也许我错过了什么.任何提示表示赞赏!
AFAIK,PostgreSQL 8.3不支持事务超时。我已经阅读了有关将来支持此功能的信息,并对此进行了一些讨论。但是,由于特定原因,我需要针对此问题的解决方案。所以我做了一个定期运行的脚本:
1)基于锁和活动,进行查询以检索耗时太长的事务的processID,并保留最旧的事务(trxTimeOut.sql):
SELECT procpid
FROM
(
SELECT DISTINCT age(now(), query_start) AS age, procpid
FROM pg_stat_activity, pg_locks
WHERE pg_locks.pid = pg_stat_activity.procpid
) AS foo
WHERE age > '30 seconds'
ORDER BY age DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
2)根据此查询,终止相应的进程(trxTimeOut.sh):
psql -h localhost -U postgres -t -d test_database -f trxTimeOut.sql | xargs kill
Run Code Online (Sandbox Code Playgroud)
尽管我已经对其进行了测试并且似乎可以工作,但是我想知道这是一种可接受的方法还是应该考虑使用其他方法?
java ×5
database ×2
postgresql ×2
android ×1
bitmap ×1
chat ×1
classpath ×1
commit ×1
concurrency ×1
cuda ×1
eclipse ×1
hashmap ×1
iteration ×1
journal ×1
multi-tenant ×1
networking ×1
nusoap ×1
nvidia ×1
performance ×1
php ×1
python ×1
sqlite ×1
symfony ×1
timeout ×1
transactions ×1
web-services ×1
windows ×1