小编Jes*_*sky的帖子

在Ruby中迭代时删除?

我正在迭代一大堆字符串,它们迭代一小组字符串.由于大小,这种方法需要一段时间才能完成,所以为了加快速度,我试图从较小的集合中删除字符串,这些字符串不再需要随之使用.以下是我目前的代码:

    Ms::Fasta.foreach(@database) do |entry|
        all.each do |set|
            if entry.header[1..40].include? set[1] + "|"
                startVal = entry.sequence.scan_i(set[0])[0]

                if startVal != nil
                    @locations << [set[0], set[1], startVal, startVal + set[1].length]
                    all.delete(set)
                end
            end
        end
    end
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,简单的方法是array.delete(string),有效地向内部循环添加一个break语句,这会使结果变得混乱.我知道如何解决这个问题的唯一方法是这样做:

Ms::Fasta.foreach(@database) do |entry|
        i = 0

        while i < all.length
            set = all[i]

            if entry.header[1..40].include? set[1] + "|"
                startVal = entry.sequence.scan_i(set[0])[0]

                if startVal != nil
                    @locations << [set[0], set[1], startVal, startVal + set[1].length]
                    all.delete_at(i)
                    i -= 1
                end
            end

            i += 1
        end
    end
Run Code Online (Sandbox Code Playgroud)

这对我来说有些邋.. …

ruby loops

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

Ruby Fibers可以并发吗?

我试图在我的程序中加快速度,并且我被告知Ruby Fibers比线程更快并且可以利用多个核心.我环顾四周,但我找不到如何实际同时运行不同的纤维.使用线程,您可以执行此操作:

threads = []

threads << Thread.new {Do something}
threads << Thread.new {Do something}

threads.each {|thread| thread.join}
Run Code Online (Sandbox Code Playgroud)

我看不出如何用纤维做这样的事情.所有我能找到的是yieldresume这似乎是只是一堆开始与纤维之间停止.有没有办法用光纤实现真正的并发?

ruby concurrency fibers

13
推荐指数
2
解决办法
3325
查看次数

Ruby进程中的共享变量

我有一个Ruby程序,它加载了两个非常大的yaml文件,因此我可以通过分离一些进程来利用多个核心来获得一些加速.我试过看,但我无法确定如何,或者即使我可以在不同的进程中共享变量.

以下代码是我目前拥有的代码:

@proteins = ""
@decoyProteins = "" 

fork do
  @proteins = YAML.load_file(database)
  exit
end

fork do
  @decoyProteins = YAML.load_file(database)
  exit
end

p @proteins["LVDK"]
Run Code Online (Sandbox Code Playgroud)

P 因为分叉而显示为零.

那么分叉进程是否可以共享变量?如果是这样,怎么样?

ruby process shared-objects

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

媒体播放器太快切断了声音

我有两个可以测试游戏的设备:美国Celluar手机(SCH-R880)和Kindle Fire,Kindle Fire比手机更强大.

我有几个短(小于或约1秒)的声音效果.为了节省内存,我加载,播放和释放其中一些声音效果.在电话中,他们(大多数)按预期播放.然而,在Kindle Fire上,它们被缩短了.真正短暂的声音被切断得如此之快,我听不到任何声音.然而,在设置时加载并保持的那些播放正常.

任何人都知道这里发生了什么?我是否会以某种方式过早发布我的媒体?以下是这方面的一个例子.在电话里,我听到"二级!" 但是在Kindle上我听到了类似"Lev tw"的内容.

mpNum = null;

try
{
    switch (level)
    {
        case 2:
            mpNum = MediaPlayer.create(contxt, R.raw.l2); break;
        case 3:
            mpNum = MediaPlayer.create(contxt, R.raw.l3); break;
        case 4:
            mpNum = MediaPlayer.create(contxt, R.raw.l4); break;
        case 5:
            mpNum = MediaPlayer.create(contxt, R.raw.l5); break;
        case 6:
            mpNum = MediaPlayer.create(contxt, R.raw.l6); break;
        case 7:
            mpNum = MediaPlayer.create(contxt, R.raw.l7); break;
        case 8:
            mpNum = MediaPlayer.create(contxt, R.raw.l8); break;
        default:
            return;
    }

    MediaPlayer vLevel = MediaPlayer.create(contxt, R.raw.level);

    vLevel.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
    {
        public void onPrepared(MediaPlayer mp) …
Run Code Online (Sandbox Code Playgroud)

android android-mediaplayer

11
推荐指数
2
解决办法
5232
查看次数

PHP有一个Set数据结构吗?

我是PHP的新手,我无法弄清楚这个基本问题.PHP有某种set或list对象吗?类似于数组的东西,但能够动态添加或删除任意数量的对象.

php set

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

你能删除从fopen创建的FILE对象吗?

在调查崩溃时,我遇到了这段代码:

FILE * RejectFile = fopen("filename", "a+");
// other code happens
delete RejectFile;
Run Code Online (Sandbox Code Playgroud)

我的理解是你只调用delete由它创建的对象new.虽然这些旧代码中的一些非常糟糕,但这可能是错误的,但我不确定.这是有效的代码吗?

c++ fopen

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

如何处理动作栏和菜单按钮?

在我正在开发的游戏中,当按下菜单按钮时,我会弹出一个游戏菜单.但是,我最近发现Android的新版本没有菜单按钮,而是一个动作栏.

需要注意的是,我没有使用实际的Android菜单.我正在做的就是检测到按下菜单按钮,然后在游戏中处理事件.这意味着我需要的是用户可以按下并检测到它被按下的内容.

所以我的问题是,我如何支持菜单按钮和更新的操作栏?我希望我的应用程序支持7级电流API级别.

UPDATE

好的,在阅读那篇文章之后,我想重新提一下我的问题.它说它"添加了系统导航旁边的动作溢出按钮".我的清单有android:minSdkVersion ="7"android:targetSdkVersion ="13"但我的模拟器上没有出现溢出按钮.模拟器是带有皮肤WSVGA的API 14

android

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

SurfaceHolder.lockCanvas()返回null

我正在制作一款游戏,因为我是Android新手,所以我的设计基于示例LunarLander代码.在它的设计中,GameThread.doStart()调用from GameActivity,然后线程从其GameThread.run()循环运行所有内容,如下所示(为清楚起见,大部分代码已被删除):

public class GameActivity extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        gameView = new GameView(this);
        fl = new FrameLayout(this);
        fl.addView(gameView);

        setContentView(fl);

        gameThread = gameView.getThread();
        gameThread.doStart();
    }
}
Run Code Online (Sandbox Code Playgroud)

.

class GameThread extends Thread
{
    public void doStart()
    {
    }

    public void run()
    {
        while (running)
        {
            Canvas c = null;
            try
            {
                c = mSurfaceHolder.lockCanvas();
                // Use canvas
            }
            finally
            {
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了解决我遇到的一些问题,我试图将更多控制权交给GameActivity,如下所示:

public class GameActivity extends Activity
{ …
Run Code Online (Sandbox Code Playgroud)

android surfaceholder

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

SurfaceHolder.lockCanvas()返回null即使它可用

我在市场上有一款安卓游戏,在尝试使用画布时,我一直在收到NullPointers的崩溃报告.我可以假设它是因为SurfaceHolder.lockCanvas()返回null,但是它在游戏中期执行,因为它基于崩溃的位置,SurfaceHolder.lockCanvas()至少返回一次有效的画布.

这很难调试,因为我无法在自己的设备上重新创建它,这让我想知道它是否与特定设备有关.我唯一的暗示是它发生的一个设备是Nexus 7.

注意:这与我提出的类似命名问题不同.另一个问题是由于尝试在可用之前使用画布,而在这里它可用的.

以下是我的代码示例:

public class GameView extends SurfaceView implements SurfaceHolder.Callback
{
    class GameThread extends Thread
    {
        @Override
        public void run()
        {
            while (running)
            {
                Canvas c = null;
                try
                {
                    c = mSurfaceHolder.lockCanvas();

                    synchronized (mSurfaceHolder)
                    {
                        long start = System.currentTimeMillis();
                        doDraw(c);
                        long diff = System.currentTimeMillis() - start;

                        if (diff < frameRate)
                            Thread.sleep(frameRate - diff);
                    }
                } catch (InterruptedException e)
                {
                }
                finally
                {
                    if (c != null)
                    {
                        mSurfaceHolder.unlockCanvasAndPost(c);
                    }
                }
            } …
Run Code Online (Sandbox Code Playgroud)

android android-canvas

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

保存到数据库时丢失时间

我在Web服务器上使用Java和hibernate来保存到Oracle SQL数据库.我创建了一个Java Date对象,但由于某种原因它到达数据库时,它只有日期而不是时间.例如,Date对象将说"2012年12月10日下午1:23:45",但在数据库中它只显示"10-DEC-12"

知道为什么会这样吗?以下是如何创建和保存日期的示例.

service.java

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

Nos nos = new Nos();
nos.setTimeReceived( new Date() );
session.save( nos );

tx.commit();
Run Code Online (Sandbox Code Playgroud)

Nos.java

@Entity
@Table(name = "nos")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Nos
{
    @Id
    @GeneratedValue
    private Long id;

    @Basic(optional=false)
    @Temporal(TemporalType.DATE)
    @Column(name="timereceived")
    private java.util.Date timeReceived;

// getters and setters
Run Code Online (Sandbox Code Playgroud)

java sql hibernate

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

它是一个数组还是一个字符串?

我给的数据可以是字符串或数组.我需要做不同的操作,具体取决于它是哪一个,所以我的问题是,如何判断对象是Python中的数组还是字符串?

conn = boto.connect_sdb(AWSKey, AWSSecret)
item = conn.get_domain(dName).get_item(imagekey)
tags = item['tag']

tags == array or string?
Run Code Online (Sandbox Code Playgroud)

python arrays string

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

Android App不会保持纵向模式

所以我设置了我的清单以使应用程序保持纵向模式,因为这就是游戏的播放方式.然而,尽管做了我见过别人做的事情,但是当你倾斜手机时它仍会切换模式.以下是我对清单所做的事情:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      ...
      android:screenOrientation="portrait">

...
<activity android:name=".GameActivity"
                  ...
                  android:configChanges="keyboardHidden|orientation"
                  android:screenOrientation="nosensor">
Run Code Online (Sandbox Code Playgroud)

android android-manifest

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

这个JSON有什么问题?

我正在使用json简单来创建和解析一些json.然而,在创建它之后,我会ParseException在我做的时候得到它parser.parse(jStr);.以下是价值jStr

{"score":12,"balls":[[PURPLE_V,134.33325,331.11713,2.0,10.750022,-115,11.0,0],[PURPLE_SPLAT,59.209473,169.87143,0.0,6.2909174,16,11.0,1],[GREEN_V,119.00015,73.71671,-12.0,6.7500067,-35,11.0,0],[ORANGE_V,229.66664,7.4416676,8.0,5.250001,-5,11.0,0]]}
Run Code Online (Sandbox Code Playgroud)

这有什么问题?我可以不做数组数组吗?

java json-simple

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