问题列表 - 第5244页

Php序列化

我试图将序列化的数组保存到我的mysql数据库然后检索它们并取消它们但是我无法解决它们如何反序列化它们.这是我到目前为止:

$query = mysql_query("SELECT friends FROM users WHERE id='$myid'");
$friends = mysql_fetch_array($query);

unserialize($friends);
Run Code Online (Sandbox Code Playgroud)

被困在这里?????

array_push($friends, $id);
$friendsUpdated = serialize($friends);

mysql_query("UPDATE users SET friends='$friendsUpdated' WHERE id='$myid'");
Run Code Online (Sandbox Code Playgroud)

php mysql serialization

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

如何用Raphael创建渐变对象

我试图使用Raphael JS图形库.我想使用属性梯度,它应该接受一个对象.文档说参考SVG规范.例如,我在SVG中找到了渐变对象

<linearGradient id="myFillGrad" x1="0%" y1="100%" x2="100%" y2="0%">
<stop offset="5%" stop-color="red" />
<stop offset="95%" stop-color="blue" stop-opacity="0.5" />
</linearGradient>
Run Code Online (Sandbox Code Playgroud)

但我如何从我的JavaScript中引用它?

circle.attr("gradient", "myFillGrad"); 
Run Code Online (Sandbox Code Playgroud)

不起作用:)提前谢谢

javascript svg gradient object raphael

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

在二叉搜索树中计算高度的最佳方法是什么?(平衡AVL树)

我正在寻找计算AVL树中节点平衡的最佳方法.我以为我有它工作,但经过一些繁重的插入/更新,我可以看到它的工作正常(根本没有).

这是一个由两部分组成的问题,第一部分是如何计算子树的高度,我知道定义"节点的高度是从该节点到叶子的最长向下路径的长度".而我理解它,但我没有实现它.并且为了进一步混淆我这个引用可以在维基百科的树高上找到"传统上,值-1对应于没有节点的子树,而零对应于具有一个节点的子树."

而第二部分是得到一个子树的平衡因素,AVL树,我没有问题理解概念,"让你的高度LR子树和减去RL".这被定义为这样的事情:BALANCE = NODE[L][HEIGHT] - NODE[R][HEIGT]

在维基百科上阅读在描述插入到AVL树中的前几行中说:"如果平衡因子变为-1,0或1,那么树仍然是AVL形式,并且不需要旋转."

然后继续说,"如果平衡因子变为2或-2,那么植根于此节点的树是不平衡的,并且需要树旋转.最多需要单次或双次旋转来平衡树." - 我没有抓麻烦.

但是(是的,总有一个但是).

这是令人困惑的地方,文本说明"如果R的平衡因子为1,则意味着插入发生在该节点的(外部)右侧,需要左旋转".但是从理解的角度来看,正如我所引用的那样,如果平衡因素在[-1, 1]那之内,那么就没有必要进行平衡了吗?

我觉得我是如此接近抓概念,我已经得到了树旋转下来,实现正常的二叉搜索树,抓AVL树的边缘,但只是似乎缺少必要的顿悟.

编辑:代码示例比学术公式更受欢迎,因为我总是更容易在代码中掌握一些东西,但是非常感谢任何帮助.

编辑:我希望我能将所有答案都标记为"已接受",但对我而言,NIck的答案是第一个让我走"aha"的答案.

algorithm binary-tree avl-tree data-structures tree-balancing

60
推荐指数
3
解决办法
14万
查看次数

如何在JTable单元格中显示动画

我在寻找一种方法来显示一个动画进度指示器(动画GIF,通过的Java2D等,这里没有偏好呈现的旋转轮)是一个表格单元格,直到将被最终显示已经计算或检索到的值.

到目前为止,我刚刚将一个静态的"待处理..."文本放入每个尚未准备加速显示的单元格中.当数据从后台线程到达时,我将其放入适当的单元格并在表格上调用重绘.

对于静态标签或图片能正常工作,但由于电池渲染使用此功能只是不大不小的橡皮图章,并且不产生每个细胞单独实例(这当然是一个好主意性能明智)动画GIF例如不不是在单个细胞中"玩".

我怎样才能达到这样的效果?与仅仅是一个简单的文本相比,它会产生一个更"精致"的UI.

java user-interface animation animated-gif

9
推荐指数
2
解决办法
4915
查看次数

领导板的高效SQL查询/架构

我写了一个愚蠢的小游戏,并希望有一些领导板网站.

通常排行榜只限于10或20名顶级球员,但我认为如果我能为每位球员记录他们的最高分,那将是很好的.然后,我总能展示他们的世界级别.

一个简单的架构,例如:

create table leaderboard (
    userid varchar(128) not null,
    score real not null,
    when datetime not null
);
create index on leaderboard(userid);
Run Code Online (Sandbox Code Playgroud)

将存储我需要的最少量信息 - 每个用户输入1个最佳分数.

我的问题围绕如何有效地确定某人在排行榜上的位置.一般的想法是,我希望他们在列表返回的位置:

select userid from leaderboard order by score desc
Run Code Online (Sandbox Code Playgroud)

但是从DB性能的角度来看,运行此查询然后线性搜索列表对我来说似乎有点荒谬.即使这样,我也很难想象一个能够快速操作的查询/模式.

有任何想法吗?

(我更希望保持数据库架构和查询通用(不依赖于供应商).但是,如果一个供应商使这很容易,我很乐意使用MS SQL或MySQL.

sql

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

需要帮助设计"无限"线程

我有一些数据库表,只要app正在运行,就需要一次处理5个数据库表.所以,它看起来像这样:

  1. 获取尚未处理的记录或其他线程现在不处理的记录.
  2. 处理它(这是一个依赖于互联网连接的漫长过程,因此可能会超时/抛出错误).
  3. 转到下一条记录.到达表的末尾从头开始.

我对线程没有多少经验,所以我看到两种可能的策略:

方法A.

1.创建新的ExecutorService:

ExecutorService taskExecutor = Executors.newFixedThreadPool(5);
Run Code Online (Sandbox Code Playgroud)

2.添加5个任务:

for (int i = 0; i < 5; i++) {
    taskExecutor.execute(new MyTask());
}
Run Code Online (Sandbox Code Playgroud)

3.每个任务都是无限循环,即:从表中读取记录,处理它,然后获取另一条记录.

这种方法的问题是如何通知其他线程当前正在处理哪些记录.为此,我可以使用表中的"status"字段,或者只使用一些包含当前处理ID的CopyOnWriteArraySet.

方法B.

1.创建相同的ExecutorService:

ExecutorService taskExecutor = Executors.newFixedThreadPool(5);
Run Code Online (Sandbox Code Playgroud)

2.有一个无限循环,选择需要处理的记录并将它们传递给执行程序:

while (true) {
    //get next record here
    taskExecutor.execute(new MyTask(record));
    //monitor the queue and wait until some thread is done processing,
    //so I can add another record
}
Run Code Online (Sandbox Code Playgroud)

3.每个任务处理一条记录.

这种方法的问题在于我需要将执行程序队列中的任务添加到比处理它们更慢的时间,以免它们随着时间的推移而堆积起来.这意味着我不仅需要监视当前正在运行的任务,还要监视它们何时完成处理,因此我可以将新记录添加到队列中.

我个人认为第一种方法更好(更容易),但我觉得第二种方法更正确.你怎么看?或者也许我应该做一些完全不同的事情?

如果需要,我也可以使用Spring或Quartz库.

谢谢.

java concurrency

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

Vim加密:如何打破它?

最近我决定使用vim的X加密功能加密我的工程日志.我写下了密码,但显然我拼错了一些东西或弄乱了一些东西,因为解密文件只是给了胡言乱语.更糟糕的是,我的所有备份都以某种方式被破坏了(不要问,我也不确定如何).

我不会找借口:我知道我搞砸了.现在我想专注于如何解决我所做的混乱.

这是我尝试过的:

  1. 使用vimzipper将加密文件包装成拉链,这样就可以通过标准的拉链破解程序破解,如fcrackzip,zipcracker,pkcrack,Advanced Zip Password Recovery等.不幸的是,这还没有用.我使用来自我的VIMINFO中的寄存器的剩余信息从文件中恢复了一行明文,但我没有文件中的偏移量来恢复明文.无论如何,即使对于带有三个字符的vim密码的简单测试文件,拉链破解也无效.

    (见http://zeus.phys.uconn.edu/refs/crackers/vimzipper.c)

  2. 恢复交换文件不起作用.当我用密码错误重新打开加密文件时,vim覆盖了"好"的交换文件.

  3. 使用大型明文数据库(来自Project Gutenberg的约30本书)作为参考数据运行unixcrypt-breaker.这导致乱码,即使我只用恢复的明文播种unixcrypt-breaker.另外,我似乎无法打破使用此方法用vim加密的简单测试文件.(仅供参考,我在运行解密之前剥离了VimCrypt~01!魔术头,我在PASTE模式下使用vim将其剥离,所以我不会改变文件的内容).

  4. 拼命猜测我能想象的每一个密码和拼写错误.我花了至少六个小时猜测我可能拼错了什么.:)

为了从程序中快速尝试密码,我尝试编译crypt/makekey的旧UNIX副本,但结果与使用vim的-x加密和相同密码加密的同一文件不同.

如果有人可以提供帮助,我会非常感激.如果没有,谢谢你的阅读.:)

encryption vi vim

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

在python中排序字典键

我有一个dict,其中每个键引用一个int值.根据值将键排序到列表中的最佳方法是什么?

python sorting

128
推荐指数
3
解决办法
14万
查看次数

哪个CSS选择器应该设置background-image属性?

为了有一个整体的背景图像一整页,我应该设置背景图像html,body或两者兼而有之?

css css-selectors

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

直接从表中选择与视图之间的区别

直接从表或从视图中选择SELECT数据有什么区别?
每个人的最佳用途是什么?

database select

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